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

MySQL SELECT क्वेरी में किसी फील्ड के लिए कीज़ को मानों से कैसे मैप करें?


MySQL SELECT क्वेरी में किसी व्यक्तिगत फील्ड के लिए कीज़ को मानों से मैप करने के लिए CASE स्टेटमेंट या IF() फ़ंक्शन का उपयोग करें।

विधि 1: CASE स्टेटमेंट

SELECT yourColumnName1, yourColumnName2, ... N, 
(CASE WHEN yourColumnName = 1 THEN 'ENABLED' ELSE 'DISABLED' END) AS anyVariableName 
FROM yourTableName;

विधि 2: IF() फ़ंक्शन

SELECT yourColumnName1, yourColumnName2, ... N, 
IF(yourColumnName, 'ENABLED', 'DISABLED') AS anyVariableName 
FROM yourTableName;

उदाहरण के साथ समझें

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

mysql> CREATE TABLE MapKeys (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Name VARCHAR(20),
    -> isActive BOOLEAN,
    -> PRIMARY KEY(Id)
    -> ); 
Query OK, 0 rows affected (0.65 sec)

रिकॉर्ड डालें

mysql> INSERT INTO MapKeys(Name, isActive) VALUES('Larry', true); 
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO MapKeys(Name, isActive) VALUES('David', false); 
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO MapKeys(Name, isActive) VALUES('Mike', true); 
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO MapKeys(Name, isActive) VALUES('Carol', false); 
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO MapKeys(Name, isActive) VALUES('Sam', false); 
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO MapKeys(Name, isActive) VALUES('Bob', true); 
Query OK, 1 row affected (0.19 sec)

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

mysql> SELECT * FROM MapKeys;

आउटपुट

+----+-------+----------+
| Id | Name  | isActive |
+----+-------+----------+
| 1  | Larry | 1        |
| 2  | David | 0        |
| 3  | Mike  | 1        |
| 4  | Carol | 0        |
| 5  | Sam   | 0        |
| 6  | Bob   | 1        |
+----+-------+----------+
6 rows in set (0.00 sec)

CASE स्टेटमेंट से मैपिंग

mysql> SELECT Id, Name, 
    -> (CASE WHEN isActive = 1 THEN 'ENABLED' ELSE 'DISABLED' END) AS Status 
    -> FROM MapKeys;

आउटपुट

+----+-------+----------+
| Id | Name  | Status   |
+----+-------+----------+
| 1  | Larry | ENABLED  |
| 2  | David | DISABLED |
| 3  | Mike  | ENABLED  |
| 4  | Carol | DISABLED |
| 5  | Sam   | DISABLED |
| 6  | Bob   | ENABLED  |
+----+-------+----------+
6 rows in set (0.00 sec)

IF() फ़ंक्शन से मैपिंग (अधिक संक्षिप्त)

mysql> SELECT Id, Name, IF(isActive, 'ENABLED', 'DISABLED') AS Status FROM MapKeys;

आउटपुट

+----+-------+----------+
| Id | Name  | Status   |
+----+-------+----------+
| 1  | Larry | ENABLED  |
| 2  | David | DISABLED |
| 3  | Mike  | ENABLED  |
| 4  | Carol | DISABLED |
| 5  | Sam   | DISABLED |
| 6  | Bob   | ENABLED  |
+----+-------+----------+
6 rows in set (0.00 sec)

दोनों विधियां समान परिणाम देती हैं। IF() सरल शर्तों के लिए अधिक संक्षिप्त है, जबकि CASE जटिल बहु-शर्त मैपिंग के लिए बेहतर है।

  1. Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं? Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं?

    Java में PreparedStatement से SELECT क्वेरी निष्पादित करना SELECT क्वेरी के लिए executeQuery() मेथड का उपयोग किया जाता है। सिंटैक्स PreparedStatement pstmt = connection.prepareStatement(query); ResultSet rs = pstmt.executeQuery(); उदाहरण: डेटाबेस में टेबल बनाएं ); डेटा डालें: insert into JavaP

  1. - MySQL में चयनित तारीख (2010-11-04) से वर्तमान तारीख तक के रिकॉर्ड चुनें

    WHERE क्लॉज में तुलना ऑपरेटर का उपयोग करके निश्चित प्रारंभ तारीख से वर्तमान तारीख तक के रिकॉर्ड फ़िल्टर करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable (Joiningdate DATE); Query OK, 0 rows affected (0.56 sec) INSERT INTO DemoTable VALUES(2010-01-01),(2010-03-31),(2010-11-04), (2012-12-31),

  1. - MySQL में टेबल में मौजूद न होने वाले मानों को कैसे क्वेरी करें?

    MySQL में किसी टेबल में मौजूद नहीं होने वाले मानों को खोजने के लिए, UNION ALL के साथ WHERE NOT EXISTS या NOT IN का उपयोग करें। यह गैप विश्लेषण या मिसिंग सीक्वेंस खोजने के लिए उपयोगी है। उदाहरण: मिसिंग ऑटो-इन्क्रीमेंट मान खोजना ऑटो-इन्क्रीमेंट टेबल बनाएं: mysql> CREATE TABLE DemoTable1918 (