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

MySQL क्वेरी में IF() फ़ंक्शन का सही उपयोग

MySQL में IF() फ़ंक्शन का उपयोग SELECT सूची में सशर्त मान लौटाने के लिए करें। यह तीन आर्गुमेंट लेता है: शर्त, सच मान, झूठ मान।

सिंटैक्स

SELECT कॉलम_नाम, IF(शर्त, सच_मान, झूठ_मान) FROM टेबल_नाम;

उदाहरण: मान 550 से तुलना

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable1571 (Id INT, Value INT);

2. डेटा डालें

mysql> INSERT INTO DemoTable1571 VALUES(101, 500), (102, 450), (103, 300), (104, 700);

3. IF() क्वेरी

mysql> SELECT Value, 
    -> IF(Value > 550, 'Value is greater than 550', 'Value is less than 550')
    -> FROM DemoTable1571;

4. परिणाम

+-------+-----------------------------------------------------------------------+
| Value | if(Value > 550, 'Value is greater than 550', 'Value is less than 550') |
+-------+-----------------------------------------------------------------------+
| 500   | Value is less than 550                                                |
| 450   | Value is less than 550                                                |
| 300   | Value is less than 550                                                |
| 700   | Value is greater than 550                                             |
+-------+-----------------------------------------------------------------------+

IF() बनाम CASE WHEN

पहलूIF()CASE WHEN
शर्तेंएकएकाधिक
पठनीयतासरल के लिए बेहतरजटिल के लिए बेहतर
नेस्टिंगमुश्किलआसान
मानक SQLनहीं (MySQL-विशिष्ट)हां

नेस्टेड IF उदाहरण

SELECT Value,
    IF(Value > 700, 'High',
        IF(Value > 500, 'Medium',
            IF(Value > 300, 'Low', 'Very Low')
        )
    ) AS Category
FROM DemoTable1571;

CASE WHEN समतुल्य (अनुशंसित)

SELECT Value,
    CASE
        WHEN Value > 700 THEN 'High'
        WHEN Value > 500 THEN 'Medium'
        WHEN Value > 300 THEN 'Low'
        ELSE 'Very Low'
    END AS Category
FROM DemoTable1571;

उपयोग के मामले

  • सरल हां/नहीं वर्गीकरण
  • गणना कॉलम में सशर्त मान
  • रिपोर्ट लेबलिंग

सावधानी

IF() एक फ़ंक्शन है, कंट्रोल फ्लो स्टेटमेंट नहीं। स्टोर्ड प्रोग्राम में लॉजिक के लिए IF ... THEN ... END IF; ब्लॉक उपयोग करें।

  1. - MySQL में कॉलम के अधिकतम मान प्राप्त करने का सबसे तेज़ तरीका: MAX() vs ORDER BY DESC LIMIT 1

    MySQL में MAX() vs ORDER BY DESC LIMIT 1: प्रदर्शन तुलना कॉलम का अधिकतम मान प्राप्त करने के दो सामान्य तरीके हैं, लेकिन MAX() फंक्शन ORDER BY ... DESC LIMIT 1 से काफी तेज होता है। दोनों तरीके -- तरीका 1: MAX() फंक्शन (अनुशंसित) SELECT MAX(yourColumnName) FROM yourTableName; -- तरीका 2: ORDER BY DE

  1. - MySQL में एक ही INSERT से बड़ी संख्या में पंक्तियाँ तेज़ी से डालें

    बड़ी संख्या में पंक्तियाँ डालने का सबसे तेज़ तरीका एक ही INSERT स्टेटमेंट में कई मान सूचियाँ देना है। यह नेटवर्क राउंड-ट्रिप और पार्सिंग ओवरहेड को कम करता है। सिंटैक्स INSERT INTO yourTableName VALUES (NULL, val1, val2), (NULL, val1, val2), ... N पंक्तियाँ; टेबल बनाएं mysql> CREATE TABLE DemoT

  1. - MySQL में DECIMAL(19,2) कॉलम में डालते समय मान को TRUNCATE से 2 दशमलव तक सीमित करें

    TRUNCATE() फ़ंक्शन TRUNCATE(value, decimals) मान को निर्दिष्ट दशमलव स्थानों तक काटता है (राउंड नहीं करता)। उदाहरण insert into demo59 values(truncate(15.346, 2)), (truncate(20.379, 2)), (truncate(25.555, 2)), (truncate(100.456, 2)); परिणाम +--------+ | price | +--------+ | 15.34 | | 20.37 | |