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

MySQL में WHERE `id` IN (...) के साथ सटीक क्रम कैसे निर्दिष्ट करें?


WHERE id IN के साथ सटीक क्रम निर्दिष्ट करने के लिए, आपको FIND_IN_SET() फंक्शन का उपयोग करना होगा।

सिंटैक्स निम्नलिखित है:

SELECT * FROM yourTableName WHERE yourColumnName IN (yourValue1,yourValue2,yourValue3,....N) ORDER BY FIND_IN_SET(yourColumnName, 'yourValue1,yourValue2,yourValue3,....N');

आइए पहले एक टेबल बनाते हैं:

mysql> create table FindInSetDemo
    -> (
    -> Id INT,
    -> Name VARCHAR(20),
    -> Age INT
    -> ); Query OK, 0 rows affected (0.54 sec)

INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।

क्वेरी निम्नलिखित है:

mysql> INSERT INTO FindInSetDemo VALUES(10,'John',23); Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO FindInSetDemo VALUES(1,'Carol',21); Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO FindInSetDemo VALUES(4,'Bob',25); Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO FindInSetDemo VALUES(6,'Sam',26); Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO FindInSetDemo VALUES(7,'Maxwell',29); Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO FindInSetDemo VALUES(8,'Mike',22); Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO FindInSetDemo VALUES(2,'David',27); Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO FindInSetDemo VALUES(3,'James',20); Query OK, 1 row affected (0.20 sec)

SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें।

क्वेरी निम्नलिखिक है:

mysql> SELECT * FROM FindInSetDemo;

निम्नलिखित आउटपुट है:

+------+---------+------+
| Id   | Name    | Age  |
+------+---------+------+
|   10 | John    | 23   |
|    1 | Carol   | 21   |
|    4 | Bob     | 25   |
|    6 | Sam     | 26   |
|    7 | Maxwell | 29   |
|    8 | Mike    | 22   |
|    2 | David   | 27   |
|    3 | James   | 20   |
+------+---------+------+
8 rows in set (0.00 sec)

WHERE id IN() के साथ सटीक क्रम निर्दिष्ट करने की क्वेरी निम्नलिखित है:

mysql> SELECT * FROM FindInSetDemo
    -> WHERE Id IN (1,4,6,7)
    -> ORDER BY FIND_IN_SET(Id, '1,4,6,7');

निम्नलिखित आउटपुट है:

+------+---------+------+
| Id   | Name    | Age  |
+------+---------+------+
| 1    | Carol   | 21   |
| 4    | Bob     | 25   |
| 6    | Sam     | 26   |
| 7    | Maxwell | 29   |
+------+---------+------+
4 rows in set (0.00 sec)

  1. - MySQL VIEW में WHERE क्लॉज का उपयोग कैसे करें?

    MySQL VIEW पर WHERE क्लॉज लागू करना MySQL VIEW एक आभासी टेबल है जो एक SELECT क्वेरी के परिणाम सेट पर आधारित होती है। आप किसी भी नियमित टेबल की तरह VIEW पर WHERE क्लॉज लागू करके परिणामों को फ़िल्टर कर सकते हैं। उदाहरण: छात्र VIEW बनाना और फ़िल्टर करना पहले एक छात्र टेबल बनाते हैं: SELECT * FROM Dem

  1. - MySQL में आरक्षित शब्द 'order' को टेबल नाम के रूप में उपयोग करने के लिए बैकटिक्स

    MySQL में ORDER एक आरक्षित शब्द (reserved word) है। इसे टेबल या कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक्स (`) से घेरना आवश्यक है। समस्या CREATE TABLE order (StudentId INT); ERROR 1064: You have an error in your SQL syntax near order समाधान: बैकटिक्स का उपयोग CREATE TABLE `order` (StudentId

  1. - MySQL में न्यूमेरिक यूज़र-डिफ़ाइंड वेरिएबल के साथ ORDER BY कैसे करें?

    MySQL में डायनामिक कॉलम नाम के साथ ORDER BY करने के लिए, यूज़र-डिफ़ाइंड वेरिएबल और PREPARED STATEMENT का उपयोग करें। यह तब उपयोगी होता है जब कॉलम का नाम रनटाइम पर तय होता है। उदाहरण: वेरिएबल के साथ डायनामिक ORDER BY डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1898 (Number INT); डेटा इन्सर्ट