MySQL में फंक्शन्स को नेस्ट (nest) करके संयोजित कर सकते हैं — एक फंक्शन का परिणाम दूसरे फंक्शन का तर्क बनता है।
उदाहरण 1: UPPER() + CONCAT()
mysql> SELECT UPPER(CONCAT('www.', 'tutorialspoint', '.com')) AS Tutorials;
+------------------------+
| Tutorials |
+------------------------+
| WWW.TUTORIALSPOINT.COM |
+------------------------+
पहले CONCAT जोड़ता है, फिर UPPER बड़े अक्षर में बदलता है।
उदाहरण 2: LOWER() + CONCAT()
mysql> SELECT LOWER(CONCAT('WWW.', 'TUTORIALSPOINT', '.COM')) AS Tutorials;
+------------------------+
| Tutorials |
+------------------------+
| www.tutorialspoint.com |
+------------------------+
नेस्टिंग के नियम
- आंतरिक फंक्शन पहले निष्पादित होता है
- वापसी प्रकार बाहरी फंक्शन के साथ संगत होना चाहिए
- कई स्तर संभव:
FUNC3(FUNC2(FUNC1(arg))) - पठनीयता के लिए इंडेंटेशन/फॉर्मेटिंग उपयोग करें
अधिक उदाहरण
-- ट्रिम और अपरकेस
SELECT UPPER(TRIM(' hello world ')); -- 'HELLO WORLD'
-- सबस्ट्रिंग और लंबाई
SELECT CHAR_LENGTH(SUBSTRING('abcdef', 2, 3)); -- 3
-- दिनांक फंक्शन्स नेस्टिंग
SELECT DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 DAY), '%Y-%m-%d');
प्रदर्शन नोट
- नेस्टिंग से क्वेरी धीमी नहीं होती (कंपाइल-टाइम पार्सिंग)
- लेकिन पंक्ति-प्रति-पंक्ति निष्पादन में CPU ओवरहेड जोड़ता है
- जटिल एक्सप्रेशन्स के लिए CTE (
WITH) या व्यू विचार करें