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

MySQL में IF() से 1 को 'Y' में बदलें (सेलेक्ट स्टेटमेंट में)

MySQL में IF() फंक्शन का उपयोग करके SELECT क्वेरी में 1/0 को 'Y'/'N' में बदल सकते हैं। यह MySQL-विशिष्ट फंक्शन है (ANSI SQL नहीं)।

सिंटैक्स

SELECT IF(yourColumn, 'Y', 'N') AS converted_column FROM yourTableName;

IF(condition, true_value, false_value)

  • condition - TRUE/FALSE मूल्यांकन (0=NULL=FALSE, अन्य=TRUE)
  • true_value - शर्त TRUE होने पर
  • false_value - शर्त FALSE/NULL होने पर

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

टेबल बनाएं:

CREATE TABLE changeValuefrom1toY (
    Id INT NOT NULL AUTO_INCREMENT,
    isValidAddress TINYINT(1),
    PRIMARY KEY(Id)
);

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

INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(0);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(0);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);

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

SELECT * FROM changeValuefrom1toY;

आउटपुट:

+----+----------------+
| Id | isValidAddress |
+----+----------------+
| 1  | 1              |
| 2  | 0              |
| 3  | 1              |
| 4  | 1              |
| 5  | 1              |
| 6  | 0              |
| 7  | 1              |
+----+----------------+

IF() से 1 को 'Y' और 0 को 'N' में बदलें

SELECT IF(isValidAddress, 'Y', 'N') AS Answer FROM changeValuefrom1toY;

परिणाम:

+--------+
| Answer |
+--------+
| Y      |
| N      |
| Y      |
| Y      |
| Y      |
| N      |
| Y      |
+--------+

व्याख्या

  • isValidAddress = 1 → TRUE → 'Y'
  • isValidAddress = 0 → FALSE → 'N'
  • isValidAddress = NULL → FALSE → 'N' (NULL भी FALSE है)

IF() vs CASE तुलना

विशेषताIF()CASE
सिंटैक्सIF(cond, true, false)CASE WHEN cond THEN true ELSE false END
पोर्टेबिलिटीकेवल MySQLANSI SQL (सभी DB)
पठनीयतासरल शर्तों के लिए अच्छीजटिल शर्तों के लिए बेहतर
नेस्टिंगमुश्किल (IF(IF(...)))आसान (CASE WHEN...WHEN...)
NULL हैंडलिंगNULL=FALSEस्पष्ट IS NULL जांच

IF() के अन्य उदाहरण

-- NULL को डिफॉल्ट से बदलें
SELECT IF(column IS NULL, 'Default', column) FROM table;

-- एकाधिक शर्तें (नेस्टेड IF - पढ़ने में कठिन)
SELECT IF(score >= 90, 'A', IF(score >= 80, 'B', IF(score >= 70, 'C', 'F'))) AS grade FROM students;

-- CASE में समान (बेहतर)
SELECT CASE 
           WHEN score >= 90 THEN 'A'
           WHEN score >= 80 THEN 'B'
           WHEN score >= 70 THEN 'C'
           ELSE 'F'
       END AS grade
FROM students;

नोट

  • IF() MySQL-विशिष्ट है; पोर्टेबल कोड के लिए CASE उपयोग करें
  • बूलियन कॉलम (TINYINT(1)) पर सीधे काम करता है
  • परिणाम टाइप: दोनों ब्रांच के टाइप से निर्धारित (स्ट्रिंग/संख्या मिश्रण संभव)
  • स्टोर्ड प्रोसीजर में IF ... THEN ... END IF (स्टेटमेंट) अलग है IF() (फंक्शन) से
  1. - MySQL में आज की तारीख 00:00 से वर्तमान समय तक की तारीख चुनें

    DATE(NOW()) (आज 00:00:00) और NOW() (वर्तमान डेटाटाइम) के बीच BETWEEN या तुलना ऑपरेटर का उपयोग करके आज के रिकॉर्ड फ़िल्टर करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable (DueDate DATETIME); Query OK, 0 rows affected (0.66 sec) INSERT INTO DemoTable VALUES(2019-09-14),(2019-09-14 08:00:10),

  1. - MySQL में फ़ील्ड मान से कॉमा की गिनती करना

    LENGTH और REPLACE से वर्ण गिनती किसी वर्ण (जैसे कॉमा) की घटनाएँ गिनने के लिए: कुल लंबाई - उस वर्ण को हटाने के बाद की लंबाई। सिंटैक्स SELECT LENGTH(col) - LENGTH(REPLACE(col, ,, )) AS comma_count FROM table; तालिका और डेटा INSERT INTO DemoTable1510 VALUES(20,35), (45,67,89), (90,97,101,190); कॉ

  1. - MySQL में मान 0 होने पर दूसरे कॉलम का मान कैसे चुनें?

    IF() फ़ंक्शन का उपयोग यदि किसी कॉलम का मान 0 है तो दूसरे कॉलम का मान लेने के लिए IF() फ़ंक्शन प्रयोग करें: select IF(yourColumnName1=0, yourColumnName2, yourColumnName1) as anyAliasName from yourTableName; टेबल बनाना और डेटा डालना insert into demo30(value,original_value) values(30,0); डेटा देखना