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

MySQL में शर्तों के आधार पर एक ही क्वेरी से अलग-अलग ID सेट करें

परिचय

MySQL में CASE स्टेटमेंट का उपयोग करके शर्तों के आधार पर अलग-अलग मान असाइन किए जा सकते हैं। यह लेख दिखाता है कि कैसे एक ही UPDATE क्वेरी में विभिन्न शर्तों के लिए अलग-अलग ID मान सेट करें।

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

mysql> CREATE TABLE DemoTable1545 (
    -> Id INT,
    -> FirstName VARCHAR(20)
    -> );
Query OK, 0 rows affected (1.65 sec)
mysql> INSERT INTO DemoTable1545 VALUES(1, 'John');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable1545 VALUES(2, 'Chris');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable1545 VALUES(3, 'Bob');
Query OK, 1 row affected (0.15 sec)

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable1545;

आउटपुट:

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 1    | John      |
| 2    | Chris     |
| 3    | Bob       |
+------+-----------+
3 rows in set (0.00 sec)

CASE स्टेटमेंट के साथ UPDATE क्वेरी

mysql> UPDATE DemoTable1545
    -> SET Id = CASE
    ->   WHEN FirstName LIKE '%John%' THEN 101
    ->   WHEN FirstName LIKE '%Chris%' THEN 201
    ->   WHEN FirstName LIKE '%Bob%' THEN 501
    ->   ELSE Id
    -> END;
Query OK, 3 rows affected (0.18 sec)
Rows matched: 3  Changed: 3  Warnings: 0

अपडेट के बाद रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable1545;

आउटपुट:

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 101  | John      |
| 201  | Chris     |
| 501  | Bob       |
+------+-----------+
3 rows in set (0.00 sec)

व्याख्या

  • CASE स्टेटमेंट प्रत्येक पंक्ति का मूल्यांकन करता है
  • WHEN क्लॉज शर्तों को क्रम से जांचता है
  • THEN संबंधित मान निर्दिष्ट करता है
  • ELSE Id डिफ़ॉल्ट रूप से मौजूदा मान रखता है यदि कोई शर्त मेल नहीं खाती

लाभ

  • एक ही क्वेरी में एकाधिक शर्तें
  • बेहतर प्रदर्शन (एकाधिक UPDATE क्वेरीज की आवश्यकता नहीं)
  • पठनीय और रखरखाव योग्य कोड

यह तकनीक थोक अपडेट ऑपरेशन्स के लिए आदर्श है जहां अलग-अलग मानदंडों के लिए अलग-अलग मान सेट करने हों।

  1. - MySQL में GROUP_CONCAT और CONCAT_WS का उपयोग करके समान ID वाले रिकॉर्ड्स को विशेष वर्ण से अलग करके संयोजित करें

    MySQL में GROUP_CONCAT और CONCAT_WS के साथ पंक्तियों को समूहित करके संयोजित करना CONCAT_WS() (विभाजक के साथ संयोजित) और GROUP_CONCAT() को मिलाकर, आप एक कॉलम द्वारा पंक्तियों को समूहित कर सकते हैं और दूसरे कॉलम के मानों को कस्टम विभाजक के साथ एक ही स्ट्रिंग में जोड़ सकते हैं। टेबल बनाना ); Query OK

  1. - MySQL में AND और OR ऑपरेटर के साथ विशिष्ट रिकॉर्ड कैसे प्राप्त करें

    उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2015 VALUES (4, Robert, US); क्वेरी StudentName=David OR (StudentCountryName=UK AND StudentId=3): WHERE StudentName = David OR StudentCountryName = UK AND StudentId = 3; परिणाम +-----------+-------------+--------------------+ | Stu

  1. - MySQL में एक क्वेरी में सभी कॉलम नामों के लिए उपनाम (alias) कैसे सेट करें

    सिंटैक्स SELECT yourColumnName1 AS aliasName1, yourColumnName2 AS aliasName2 FROM yourTableName AS tableAlias; उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2014 VALUES (Chris, Brown); उपनाम के साथ क्वेरी FROM DemoTable2014 tbl; परिणाम +------------------+-----------------+ | Studen