Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL IN क्लॉज में रिटर्न रिकॉर्ड सेट क्रम प्राप्त करें

FIND_IN_SET() से कस्टम क्रम में परिणाम प्राप्त करें

IN क्लॉज डिफ़ॉल्ट रूप से क्रम की गारंटी नहीं देता। FIND_IN_SET() फ़ंक्शन का उपयोग ORDER BY में करके निर्दिष्ट क्रम में परिणाम प्राप्त करें।

सिंटैक्स

SELECT * FROM yourTableName
WHERE id IN (val1, val2, val3)
ORDER BY FIND_IN_SET(id, 'val1,val2,val3');

उदाहरण: टेबल और डेटा

mysql> CREATE TABLE returnRecordSetOrderDemo (Id INT, Name VARCHAR(20));
mysql> INSERT INTO returnRecordSetOrderDemo VALUES
(100,'John'), (130,'Carol'), (103,'Bob'), (134,'Sam'), (102,'Larry'), (145,'David');

डेटा

+------+-------+
| Id   | Name  |
+------+-------+
| 100  | John  |
| 130  | Carol |
| 103  | Bob   |
| 134  | Sam   |
| 102  | Larry |
| 145  | David |
+------+-------+

कस्टम क्रम क्वेरी (100, 145, 103, 130 क्रम में)

mysql> SELECT * FROM returnRecordSetOrderDemo
    -> WHERE Id IN (100, 145, 103, 130)
    -> ORDER BY FIND_IN_SET(Id, '100,145,103,130');

परिणाम (निर्दिष्ट क्रम में)

+------+-------+
| Id   | Name  |
+------+-------+
| 100  | John  |
| 145  | David |
| 103  | Bob   |
| 130  | Carol |
+------+-------+

FIND_IN_SET विवरण

  • FIND_IN_SET(str, strlist) - strlist में str की स्थिति लौटाता है (1-आधारित)
  • नहीं मिलने पर 0 लौटाता है
  • स्ट्रिंग सूची कॉमा-अलग होनी चाहिए (कोई स्पेस नहीं)
  • केस-सेंसिटिव तुलना करता है

वैकल्पिक: FIELD() फ़ंक्शन

ORDER BY FIELD(Id, 100, 145, 103, 130)

FIELD() संख्यात्मक तुलना करता है, FIND_IN_SET() स्ट्रिंग तुलना।

  1. Java के साथ MySQL डेटाबेस में टेबल से अंतिम रिकॉर्ड कैसे प्राप्त करें? Java के साथ MySQL डेटाबेस में टेबल से अंतिम रिकॉर्ड कैसे प्राप्त करें?

    MySQL डेटाबेस से डेटा प्राप्त करने के लिए, आपको Java से executeQuery() मेथड का उपयोग करना होगा। पहले MySQL डेटाबेस में एक टेबल बनाएं। यहां हम sample डेटाबेस में निम्नलिखित टेबल बनाएंगे: ); Query OK, 0 rows affected (0.80 sec) अब INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं। क्वेरी

  1. - MySQL में IN() और FIELD() से सेट क्रम में SELECT करें

    IN() और FIELD() के संयोजन से कस्टम क्रम में परिणाम प्राप्त करना जब आपको विशिष्ट मानों के लिए पंक्तियां चुननी हों और उन्हें एक विशेष क्रम में दिखाना हो, तो WHERE ... IN(...) के साथ ORDER BY FIELD(...) का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable( StudentId VARCHAR(10), StudentName VAR

  1. - MySQL में तिथि रिकॉर्ड क्रमबद्ध करें और दूसरी क्रमबद्ध पंक्ति प्राप्त करें

    ORDER BY और LIMIT OFFSET के साथ दूसरी क्रमबद्ध पंक्ति प्राप्त करना क्रमबद्ध करने के लिए ORDER BY और केवल दूसरी क्रमबद्ध पंक्ति प्राप्त करने के लिए MySQL LIMIT का उपयोग करें और ऑफसेट भी सेट करें। पहले टेबल बनाएं: create table DemoTable1417 ( CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, Custom