Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wählen Sie unterschiedliche Benachrichtigungen aus und bereiten Sie eine klarere Benachrichtigungsnachricht vor

Ich teile nur den Abfrageteil, der Ihre erste und zweite Anforderung löst, vorausgesetzt, dass Ihre Daten in derselben Struktur bleiben. Sie können die Joins und andere notwendige Details zu Ihrer Abfrage hinzufügen.

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;

Ich weiß, dass die String-Funktionen kompliziert aussehen, aber um zu Ihrer gewünschten Ausgabe zu gelangen, musste ich mit den generierten Strings herumspielen. Ich habe Ihren Datensatz in der SQL Fiddle ein wenig modifiziert, um meine Ausgabe zu überprüfen. Sie können dasselbe tun unter:

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

Lassen Sie es mich wissen, falls es andere Kriterien gibt, die erfüllt werden müssen, oder eine Verbesserung, die Sie in der Abfrage benötigen.