Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn các thông báo riêng biệt và chuẩn bị một thông báo rõ ràng hơn

Tôi chỉ chia sẻ phần truy vấn giải quyết các yêu cầu đầu tiên và thứ hai của bạn, giả sử rằng dữ liệu của bạn vẫn ở cùng một cấu trúc. Bạn có thể thêm các liên kết và các chi tiết cần thiết khác trong truy vấn của mình.

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;

Tôi biết các hàm Chuỗi trông phức tạp, nhưng để đạt được đầu ra yêu cầu của bạn, bạn phải thử với các Chuỗi được tạo. Tôi đã sửa đổi tập dữ liệu của bạn trong SQL Fiddle một chút để kiểm tra đầu ra của tôi. Bạn có thể làm tương tự tại:

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

Hãy cho tôi biết trong trường hợp có một số tiêu chí khác cần được đáp ứng hoặc bất kỳ cải tiến nào bạn yêu cầu trong truy vấn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tự động triển khai MySQL hoặc Cụm Postgres của bạn từ bản sao lưu

  2. Kiểm tra lỗ hổng bảo mật trong các ứng dụng web:Các phương pháp hay nhất?

  3. Tại sao lỗi xảy ra khi tôi gửi nhiều truy vấn vào mysqli_query?

  4. php cách liên kết một tệp từ máy chủ tệp với thông tin đó từ cơ sở dữ liệu

  5. sql khác biệt, nhận được 2 cột