sql >> Base de Datos >  >> RDS >> Mysql

Seleccionar notificaciones distintas y preparar un mensaje de notificación más claro

Estoy compartiendo solo la parte de la consulta que resuelve su primer y segundo requisito, suponiendo que sus datos permanezcan en la misma estructura. Puede agregar las uniones y otros detalles necesarios en su consulta.

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;

Sé que las funciones de cadena parecen complicadas, pero para llegar a la salida requerida, tuve que jugar con las cadenas generadas. Modifiqué un poco su conjunto de datos en SQL Fiddle para verificar mi salida. Puedes hacer lo mismo en:

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

Avíseme en caso de que haya algún otro criterio que deba cumplirse o alguna mejora que necesite en la consulta.