डिफ़ॉल्ट रूप से, दो पाइप वर्ण (||
) को तार्किक OR
. के रूप में माना जाता है मारियाडीबी में ऑपरेटर। हालांकि, आप चाहें तो इस व्यवहार को बदल सकते हैं।
आप अपना sql_mode
अपडेट कर सकते हैं PIPES_AS_CONCAT
. शामिल करने के लिए विकल्प, जिस स्थिति में दो पाइपों को एक संयोजन ऑपरेटर के रूप में माना जाएगा।
इस विकल्प को अपने sql_mode
. में जोड़ने के कई तरीके हैं . आप इसे स्पष्ट रूप से जोड़ सकते हैं। या आप अपना sql_mode
सेट कर सकते हैं एक विकल्प के लिए जो इसे परोक्ष रूप से सेट करता है।
मैं नीचे इन विकल्पों के माध्यम से चलता हूं।
PIPES_AS_CONCAT
जोड़ें स्पष्ट रूप से
अगर आप अपने मौजूदा sql_mode
को खराब नहीं करना चाहते हैं सेटिंग्स, आप निम्न कोड चला सकते हैं:
SET sql_mode=(SELECT CONCAT(@@sql_mode,',PIPES_AS_CONCAT'));
यह जोड़ता है PIPES_AS_CONCAT
कुछ और हटाए बिना। मैं इस्तेमाल कर सकता था sql_mode = 'PIPES_AS_CONCAT'
, लेकिन मैं सभी मौजूदा विकल्पों को खो देता। उपरोक्त तकनीक का उपयोग सुनिश्चित करता है कि मैं कोई भी मौजूदा विकल्प नहीं खोता।
आइए मेरे मौजूदा sql_mode
की जांच करें उस कोड को चलाने के बाद सेटिंग्स:
SELECT @@sql_mode;
परिणाम:
PIPES_AS_CONCAT,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
हम देख सकते हैं कि PIPES_AS_CONCAT
पहले से मौजूद अन्य विकल्पों के साथ शामिल है।
एएनएसआई
इसे करने का दूसरा तरीका sql_mode
. सेट करना है करने के लिए ANSI
:
SET sql_mode='ANSI';
ANSI
मोड सिंटैक्स और व्यवहार को मानक SQL के अधिक निकटता के अनुरूप बदलता है।
ध्यान दें कि यह किसी भी मौजूदा सेटिंग को हटा देगा और ANSI
. पर लागू होने वाली सेटिंग का ही उपयोग करेगा विकल्प।
इसे प्रदर्शित करने के लिए, आइए मेरे sql_mode
पर एक और नज़र डालें इसे ANSI
. पर सेट करने के बाद :
SET sql_mode='ANSI';
SELECT @@sql_mode;
परिणाम:
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI
हम देख सकते हैं कि मेरा sql_mode
पूरी तरह से बदल गया है।
DB2
उसी तर्ज पर, हम अपना sql_mode
. सेट कर सकते हैं विभिन्न DBMS के साथ अधिक तालमेल बिठाने के लिए।
इसे DB2 सम्मेलनों का उपयोग करने के लिए सेट करने का तरीका यहां दिया गया है:
SET sql_mode='DB2';
SELECT @@sql_mode;
परिणाम:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,DB2,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS
वे विकल्प हैं जो DB2 के साथ संरेखित होते हैं।
MaxDB
SET sql_mode='MAXDB';
SELECT @@sql_mode;
परिणाम:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
एसक्यूएल सर्वर
MSSQL
का प्रयोग करें इसे SQL सर्वर सम्मेलनों का उपयोग करने के लिए सेट करने के लिए:
SET sql_mode='MSSQL';
SELECT @@sql_mode;
परिणाम:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MSSQL,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS
ओरेकल
SET sql_mode='ORACLE';
SELECT @@sql_mode;
परिणाम:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,SIMULTANEOUS_ASSIGNMENT
SIMULTANEOUS_ASSIGNMENT
विकल्प केवल मारियाडीबी 10.3 और उच्चतर का उपयोग करते समय जोड़ा जाता है।
पोस्टग्रेएसक्यूएल
SET sql_mode='POSTGRESQL';
SELECT @@sql_mode;
परिणाम:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,POSTGRESQL,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS