MySQL पाइप कॉन्सटेनेशन ऑपरेटर के उपयोग का समर्थन करता है (||
) अपने ऑपरेंड को संयोजित करने के लिए। हालांकि, आपको पहले इसे सक्षम करना होगा।
डिफ़ॉल्ट रूप से, MySQL ||
. का व्यवहार करता है तार्किक के रूप में OR
ऑपरेटर (हालांकि यह उपचार वर्तमान में बहिष्कृत है)। हालांकि, एएनएसआई मानक के लिए आवश्यक है कि ||
एक संयोजन ऑपरेटर है। शायद आपके पास कोड है जो पहले से ही पाइप कॉन्सटेनेशन ऑपरेटर का उपयोग करता है, और आप CONCAT()
का उपयोग करने के लिए कोड को बदलना और बदलना नहीं चाहेंगे समारोह।
सौभाग्य से, MySQL हमें यह निर्दिष्ट करने की क्षमता प्रदान करता है कि क्या इसे तार्किक OR
के रूप में माना जाए संचालिका या संघटन संचालिका।
आप ||
. को सक्षम कर सकते हैं अपने sql_mode
. में लागू विकल्प सेट करके एक संयोजन ऑपरेटर के रूप में .
आपके पास दो विकल्प हैं:
PIPES_AS_CONCAT
जोड़ें आपकेsql_mode
. परsql_mode
सेट करें करने के लिएANSI
।
विकल्प 1
यहां, मैं PIPES_AS_CONCAT
जोड़ता हूं मेरे sql_mode
. पर :
SET sql_mode=(SELECT CONCAT(@@sql_mode,',PIPES_AS_CONCAT'));
यह सच है कि मैं अभी-अभी जा सकता था sql_mode = 'PIPES_AS_CONCAT'
, लेकिन मैं सभी मौजूदा विकल्पों को खो देता। उपरोक्त तकनीक का उपयोग सुनिश्चित करता है कि मैं कोई भी मौजूदा विकल्प नहीं खोता।
विकल्प 2
इसे करने का दूसरा तरीका sql_mode
. सेट करना है करने के लिए ANSI
:
SET sql_mode='ANSI';
ANSI
मोड सिंटैक्स और व्यवहार को मानक SQL के अधिक निकटता के अनुरूप बदलता है।
अपना sql_mode
जांचें
आप अपना sql_mode
देख सकते हैं इस तरह:
SELECT @@sql_mode;
परिणाम:
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI
ANSI
. में बदलने के बाद मुझे यही परिणाम मिलता है तरीका। हम देख सकते हैं PIPES_AS_CONCAT
विकल्पों की सूची में शामिल है।
संयोजन उदाहरण
sql_mode
सेट करने के बाद उपरोक्त तकनीकों में से किसी एक का उपयोग करके, अब हम ||
. का उपयोग कर सकते हैं एक पाइप संयोजन ऑपरेटर के रूप में:
SELECT 'Homer' || 'Symptom';
परिणाम:
HomerSymptom
यदि हमने पाइप संयोजन ऑपरेटर को सक्षम नहीं किया होता, तो सबसे अधिक संभावना है कि हमें एक चेतावनी के साथ एक अप्रत्याशित परिणाम मिल जाता।