Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MYSQL - GROUP_CONCAT DAN FIND_IN_SET sedang mencampur nilai/pesanan?

akankah sesuatu seperti ini berhasil? pada dasarnya Anda mengatakan urutan berdasarkan nilai bidang dan membuatnya terlihat seperti '52','46',... dll.

SELECT 
    GROUP_CONCAT(DISTINCT options.option_name 
                 ORDER BY FIELD( options.id, 
                                 concat('"', 
                                        replace(selected, ',', '","'),
                                        '"') 
                               ) 
                 SEPARATOR ','
                ) AS selected,
    user_login.firstname, user_login.lastname,
    event.event_title
FROM options, user_login, event, votes, questions
WHERE event.id = ? AND questions.Event_id = event.id 
  AND votes.user_id = user_login.id AND votes.question_id = questions.id 
  AND FIND_IN_SET(options.id, selected)
GROUP BY user_login.id
ORDER BY user_login.class

EDIT:

cara yang saya sukai untuk melakukan ini adalah membuat variabel yang memiliki string.. lebih mudah dibaca dan Anda dapat memastikannya melakukan urutan yang benar dengan cara ini..

SET @order_field := (
    SELECT 
        group_concat(
            CONCAT('"', replace(selected, ',', '","'), '"')
        ) 
    FROM votes);

maka kueri akan jauh lebih mudah dibaca...

SELECT 
    GROUP_CONCAT(DISTINCT options.option_name 
                 ORDER BY FIELD( options.id, @order_field) 
                 SEPARATOR ','
                ) AS selected,
    user_login.firstname, user_login.lastname,
    event.event_title
FROM options, user_login, event, votes, questions
WHERE event.id = ? AND questions.Event_id = event.id 
  AND votes.user_id = user_login.id AND votes.question_id = questions.id 
  AND FIND_IN_SET(options.id, selected)
GROUP BY user_login.id
ORDER BY user_login.class



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EC2 Amazon Linux AMI MySQL CPU @ 62% Saat Menganggur?

  2. Karakter Ruby dan MySQL UTF-8

  3. MySQL - buat tampilan menggunakan subquery dalam klausa FROM

  4. Apakah mysqli_real_escape_string cukup untuk menghindari injeksi SQL atau serangan SQL lainnya?

  5. menampilkan satu kolom beberapa kali dengan data dari 3 interval tanggal yang berbeda