MySQL में CASE स्टेटमेंट का उपयोग करके टर्नरी ऑपरेशन करना
MySQL में C/C++ जैसा ?: टर्नरी ऑपरेटर नहीं है, लेकिन CASE WHEN ... THEN ... ELSE ... END से समान कार्यक्षमता प्राप्त कर सकते हैं।
C/C++ टर्नरी ऑपरेटर
result = (X > 1 && (X - Y) < 0) ? X : (X - Y);
MySQL समतुल्य: CASE स्टेटमेंट
SELECT CASE
WHEN tbl.X > 1 AND (tbl.X - tbl.Y) < 0 THEN 0
ELSE (tbl.X - tbl.Y)
END AS Result
FROM TernaryOperationDemo tbl;
उदाहरण
टेबल बनाएं:
mysql> create table TernaryOperationDemo (
-> X int,
-> Y int
-> );
डेटा डालें:
mysql> insert into TernaryOperationDemo values(10, 5); mysql> insert into TernaryOperationDemo values(5, 15); mysql> insert into TernaryOperationDemo values(20, 15); mysql> insert into TernaryOperationDemo values(15, 25); mysql> insert into TernaryOperationDemo values(10, -11);
टर्नरी लॉजिक लागू करें:
mysql> select case when tbl.X > 1 AND (tbl.X - tbl.Y) < 0 THEN 0 ELSE (tbl.X - tbl.Y) END AS Result
-> from TernaryOperationDemo tbl;
परिणाम:
+--------+ | Result | +--------+ | 5 | | 0 | | 5 | | 0 | | 21 | +--------+
सरल CASE सिंटैक्स
-- सरल CASE (मान की तुलना)
CASE column
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE default_result
END
-- खोज CASE (शर्तों की तुलना) - अधिक लचीला
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
END
MySQL 8.0+ में IF() फ़ंक्शन
सरल शर्तों के लिए IF(condition, true_value, false_value) का उपयोग कर सकते हैं:
SELECT IF(X > 1 AND (X - Y) < 0, 0, X - Y) AS Result FROM TernaryOperationDemo;