Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélection de notifications distinctes et préparation d'un message de notification plus clair

Je ne partage que la partie requête qui résout vos première et deuxième exigences en supposant que vos données restent dans la même structure. Vous pouvez ajouter les jointures et autres détails nécessaires dans votre requête.

SELECT myView.*, CONCAT(REPLACE(REPLACE(group_concat(SUBSTRING(notification_message,9)),'</strong>',''),SUBSTRING_INDEX(notification_message,'>',-1),''), SUBSTRING_INDEX(notification_message,'>',-1)) AS Message
FROM (SELECT DISTINCT receiver_id, notification_issuer, notification_message, notification_target, notification_type FROM imgzer_notifications
WHERE receiver_id = 9 and notification_seen = 1 ORDER BY notification_time DESC) myView GROUP BY myView.receiver_id, myView.notification_target, myView.notification_type;

Je sais que les fonctions String semblent compliquées, mais pour arriver à la sortie requise, j'ai dû jouer avec les chaînes générées. J'ai un peu modifié votre ensemble de données dans SQL Fiddle pour vérifier ma sortie. Vous pouvez faire la même chose sur :

http://www.sqlfiddle.com/#!2/70a937/49

Faites-moi savoir s'il y a d'autres critères à remplir ou toute amélioration dont vous avez besoin dans la requête.