Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MYSQL - GROUP_CONCAT और FIND_IN_SET मान/आदेश मिला रहे हैं?

क्या ऐसा कुछ काम करेगा? मूल रूप से आप फ़ील्ड मानों द्वारा आदेश कहते हैं और उन्हें '52', '46',... आदि जैसा बनाते हैं।

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

संपादित करें:

ऐसा करने का मेरा पसंदीदा तरीका एक वैरिएबल बनाना है जिसमें स्ट्रिंग है .. इसे पढ़ना आसान है और आप यह सुनिश्चित कर सकते हैं कि यह सही क्रम इस तरह से करता है ..

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

तो क्वेरी को पढ़ना बहुत आसान होगा...

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. रिफ्रेश करने पर फॉर्म गेट्स रिसेंट

  2. MySQL क्रिएट व्यू, रिप्लेस व्यू और ड्रॉप व्यू स्टेटमेंट उदाहरणों के साथ

  3. C++ का उपयोग करके mySQL डेटाबेस को कैसे कनेक्ट करें?

  4. php . में समान आईडी वाली पंक्तियों की गणना करें

  5. java.sql.sqlException कॉलम नहीं मिला