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

MySQL कुछ सूची के आधार पर छाँटें

चूंकि 1 < 3 < 77 < 123 , एक साधारण ORDER BY id पर्याप्त होगा।

अगर, हालांकि, आप इस तरह से ऑर्डर करना चाहते हैं:77, 3, 123, 1 , तो आप फ़ंक्शन का उपयोग कर सकते हैं FIELD() :

SELECT id, name
FROM mytable 
WHERE id IN (77, 3, 123, 1) 
ORDER BY FIELD(id, 77, 3, 123, 1)

यदि आपकी क्वेरी FIELD में आपकी सूची से अधिक पंक्तियों से मेल खाती है

FIELD रिटर्न 0 जब कोई पंक्ति आपके द्वारा सूचीबद्ध किसी भी आईडी से मेल नहीं खाती, यानी सूचीबद्ध आईडी के लिए दी गई संख्याओं से छोटी संख्या। इसका अर्थ है, यदि आपकी क्वेरी आपके द्वारा सूचीबद्ध पंक्तियों से अधिक पंक्तियों से मेल खाती है, तो वे पंक्तियाँ पहले दिखाई देंगी। उदाहरण के लिए:

SELECT id, name
FROM mytable 
WHERE id IN (77, 3, 123, 1, 400) 
ORDER BY FIELD(id, 77, 3, 123, 1)

इस उदाहरण में, आईडी वाली पंक्ति 400 पहले दिखाई देगा। यदि आप चाहते हैं कि वे पंक्तियाँ अंतिम दिखाई दें, तो बस आईडी की सूची को उलट दें और DESC add जोड़ें :

SELECT id, name
FROM mytable 
WHERE id IN (77, 3, 123, 1, 400) 
ORDER BY FIELD(id, 1, 123, 3, 77) DESC



  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 में VARCHAR और TEXT के बीच अंतर

  3. डोकर mysql कंटेनर से कनेक्ट नहीं हो सकता

  4. MySQL TRUNCATE () फ़ंक्शन - किसी संख्या को दशमलव स्थानों की निर्दिष्ट संख्या में छोटा करें

  5. उपयोगकर्ता आईडी की सूची संग्रहीत करने का सर्वोत्तम तरीका