Mysql
 sql >> Database >  >> RDS >> Mysql

Selezionare notifiche distinte e preparare un messaggio di notifica più chiaro

Condivido solo la parte della query che risolve il primo e il secondo requisito presupponendo che i dati rimangano nella stessa struttura. Puoi aggiungere i join e altri dettagli necessari nella tua query.

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;

So che le funzioni String sembrano complicate, ma per arrivare all'output richiesto, ho dovuto giocare con le stringhe generate. Ho modificato leggermente il tuo set di dati in SQL Fiddle per controllare il mio output. Puoi fare lo stesso su:

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

Fammi sapere nel caso in cui ci siano altri criteri da soddisfare o qualsiasi miglioramento necessario nella query.