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

MySQL में CASE WHEN का उपयोग करके VARCHAR फ़ील्ड में पूर्णांक मान खोजना

MySQL में CASE WHEN एक्सप्रेशन का उपयोग करके VARCHAR कॉलम में स्ट्रिंग के शुरुआती अंक के आधार पर सशर्त खोज करें।

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

mysql> CREATE TABLE DemoTable (
    -> Title VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.61 sec)
mysql> INSERT INTO DemoTable VALUES('9John@example.com'), ('3Carol@gmail.com');

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

mysql> SELECT * FROM DemoTable;

आउटपुट

+-------------------+
| Title             |
+-------------------+
| 9John@example.com |
| 3Carol@gmail.com  |
+-------------------+
2 rows in set (0.00 sec)

CASE WHEN के साथ शुरुआती अंक 9 की जांच

mysql> SELECT CASE WHEN Title = 9 THEN 'Search Successful' ELSE 'Search Unsuccessful' END AS Result FROM DemoTable;

आउटपुट

+---------------------+
| Result              |
+---------------------+
| Search Successful   |
| Search Unsuccessful |
+---------------------+
2 rows in set, 2 warnings (0.00 sec)

व्याख्या:

  • MySQL स्ट्रिंग की संख्या से तुलना में स्ट्रिंग को संख्या में परिवर्तित करता है
  • '9John@example.com' = 9 → TRUE (स्ट्रिंग '9' से शुरू होती है, अग्रणी अंक 9 के रूप में पार्स होता है)
  • '3Carol@gmail.com' = 9 → FALSE (3 ≠ 9)
  • चेतावनी: "Truncated incorrect DOUBLE value" - अप्रत्यक्ष रूपांतरण के कारण

बेहतर/स्पष्ट दृष्टिकोण:

-- पहला वर्ण जांचें
SELECT CASE WHEN SUBSTRING(Title, 1, 1) = '9' THEN 'Found' ELSE 'Not Found' END AS Result FROM DemoTable;

-- या REGEXP
SELECT CASE WHEN Title REGEXP '^9' THEN 'Found' ELSE 'Not Found' END AS Result FROM DemoTable;

-- या CAST के साथ स्पष्ट तुलना
SELECT CASE WHEN CAST(Title AS UNSIGNED) = 9 THEN 'Found' ELSE 'Not Found' END AS Result FROM DemoTable;

नोट: VARCHAR कॉलम में संख्यात्मक खोज के लिए डेटा प्रकार सही करना (अलग संख्यात्मक कॉलम) बेहतर डिज़ाइन है।

  1. - MySQL में VARCHAR को UNSIGNED INTEGER में कन्वर्ट करना

    CAST() फंक्शन से VARCHAR को UNSIGNED INTEGER में बदलना जब संख्यात्मक डेटा VARCHAR कॉलम में स्टोर होता है और उस पर गणना या सही सॉर्टिंग करनी हो, तो CAST() फंक्शन का उपयोग करें। टेबल बनाना और डेटा इन्सर्ट करना CREATE TABLE DemoTable868(Amount VARCHAR(100)); INSERT INTO DemoTable868 VALUES(781); INSE

  1. - MySQL में उपयोगकर्ता वेरिएबल से दो फील्ड मानों को कैसे स्वैप करें?

    MySQL में दो कॉलम मान स्वैप करना: उपयोगकर्ता वेरिएबल का उपयोग MySQL में एक ही पंक्ति के दो कॉलम मानों को स्वैप करने के लिए उपयोगकर्ता वेरिएबल (@var) का उपयोग करके अस्थायी भंडारण किया जा सकता है। उदाहरण: Id=2 वाली पंक्ति में Number1 और Number2 स्वैप करें टेबल बनाएं: CREATE TABLE DemoTable ( Id I

  1. - MySQL में NOT NULL मान के लिए 1 सेट करें

    MySQL में किसी कॉलम के NOT NULL मान होने पर 1 और NULL होने पर 0 लौटाने के लिए IF() फंक्शन के साथ IS NOT NULL ऑपरेटर का उपयोग करें। यह डेटा वैलिडेशन, रिपोर्टिंग, और कंडीशनल एग्रीगेशन के लिए उपयोगी है। बुनियादी सिंटैक्स SELECT IF( IS NOT NULL, 1, 0) AS anyAliasName; आउटपुट: 1 (क्योंकि खाली स्ट्रिंग N