Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecionar notificações distintas e preparar uma mensagem de notificação mais clara


Estou compartilhando apenas a parte da consulta que resolve seu primeiro e segundo requisitos, supondo que seus dados permaneçam na mesma estrutura. Você pode adicionar as junções e outros detalhes necessários em sua 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;


Eu sei que as funções String parecem complicadas, mas para chegar à saída necessária, tive que brincar com as Strings geradas. Modifiquei um pouco seu conjunto de dados no SQL Fiddle para verificar minha saída. Você pode fazer o mesmo em:

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

Informe-me caso haja algum outro critério a ser atendido ou qualquer aprimoramento necessário na consulta.