CONCAT() में बैकटिक्स नहीं, सिंगल कोट्स उपयोग करें
MySQL में CONCAT() फंक्शन में स्ट्रिंग लिटरल के लिए बैकटिक्स (`) का उपयोग करने पर सिंटैक्स एरर आता है। स्ट्रिंग लिटरल के लिए हमेशा सिंगल कोट्स (') उपयोग करें।
गलत तरीका (एरर देगा)
SELECT CONCAT(`Id`, ` `, `Name`) FROM DemoTable; -- गलत!
सही तरीका
SELECT CONCAT(Id, ' ', Name) FROM DemoTable;
टेबल बनाना और डेटा इन्सर्ट करना
CREATE TABLE DemoTable1359 (
Id INT,
Name VARCHAR(20)
);
INSERT INTO DemoTable1359 VALUES(101, 'Chris');
INSERT INTO DemoTable1359 VALUES(102, 'Adam');
INSERT INTO DemoTable1359 VALUES(103, 'Mike');
INSERT INTO DemoTable1359 VALUES(104, 'John');
मौजूदा डेटा
+------+-------+ | Id | Name | +------+-------+ | 101 | Chris | | 102 | Adam | | 103 | Mike | | 104 | John | +------+-------+
क्वेरी: सिंगल कोट्स के साथ CONCAT
SELECT CONCAT(Id, ' ', Name) FROM DemoTable1359;
आउटपुट
+---------------------+ | concat(Id, ' ', Name) | +---------------------+ | 101 Chris | | 102 Adam | | 103 Mike | | 104 John | +---------------------+
बैकटिक्स कब उपयोग करें
- पहचानकर्ता (आइडेंटिफायर) के लिए: टेबल नाम, कॉलम नाम, डेटाबेस नाम
- उदाहरण:
SELECT `Id`, `Name` FROM `DemoTable` - आरक्षित शब्दों को कॉलम नाम बनाने पर जरूरी:
SELECT `order`, `select` FROM `table`
सिंगल कोट्स कब उपयोग करें
- स्ट्रिंग लिटरल के लिए: 'Hello', ' ', 'John'
- डेट लिटरल के लिए: '2023-01-01'
CONCAT(),REPLACE(),LIKEआदि में स्ट्रिंग वैल्यू
डबल कोट्स
MySQL में ANSI_QUOTES SQL मोड सक्षम होने पर डबल कोट्स (") भी पहचानकर्ता के लिए उपयोग होते हैं। डिफॉल्ट में ये स्ट्रिंग लिटरल हैं।
CONCAT_WS विकल्प (सेपरेटर के साथ)
SELECT CONCAT_WS(' ', Id, Name) FROM DemoTable1359;
CONCAT_WS (With Separator) पहला आर्गुमेंट सेपरेटर के रूप में उपयोग करता है और NULL को अनदेखा करता है।