MySQL में बैकस्लैश () सहित विशेष वर्णों से बचना एक आम बात है। व्याख्या संबंधी विवादों को रोकने के लिए प्रश्नों में। हालाँकि, बैकस्लैश के संबंध में समान ऑपरेटर (=) और LIKE ऑपरेटर के व्यवहार की तुलना करने पर एक विचित्र विसंगति उत्पन्न होती है।
बराबर ऑपरेटर के मामले में, खोज शब्द के भीतर बैकस्लैश से बचने के लिए किसी अतिरिक्त बैकस्लैश की आवश्यकता नहीं है। उदाहरण के लिए, निम्न क्वेरी उस पंक्ति को पुनर्प्राप्त करती है जहां शीर्षक कॉलम में मान "परीक्षण\" होता है।
SELECT * FROM `titles` WHERE title = 'test\';
MySQL पार्सर स्वचालित रूप से खोज शब्द में बैकस्लैश को एक शाब्दिक चरित्र के रूप में व्याख्या करता है, इसलिए सफल पुनर्प्राप्ति होती है।
बराबर ऑपरेटर के विपरीत, LIKE ऑपरेटर को एक की आवश्यकता होती है खोज शब्द में बैकस्लैश से बचने के लिए अतिरिक्त बैकस्लैश। ऐसा इसलिए है क्योंकि LIKE ऑपरेटर एक पैटर्न मैच करता है, और बैकस्लैश SQL में डिफ़ॉल्ट रूप से एस्केप कैरेक्टर के रूप में कार्य करता है। इस प्रकार, निम्नलिखित क्वेरी पिछली पंक्ति के समान पंक्ति को पुनः प्राप्त करती है:
SELECT * FROM `titles` WHERE title LIKE 'test\\\\';
इस क्वेरी में, डबल बैकस्लैश सुनिश्चित करें कि खोज शब्द में एकल बैकस्लैश को शाब्दिक रूप से बैकस्लैश वर्ण के रूप में व्याख्या किया गया है। . पार्सर प्रारंभ में खोज शब्द से बैकस्लैश को हटा देता है। हालाँकि, जब पैटर्न मिलान बाद में किया जाता है, तो बैकस्लैश एक बार फिर हटा दिए जाते हैं। यह पैटर्न के विरुद्ध मिलान करने के लिए एक एकल बैकस्लैश छोड़ता है। यह सुनिश्चित करने के लिए कि बैकस्लैश को एक शाब्दिक चरित्र के रूप में माना जाता है, अतिरिक्त बैकस्लैश की आवश्यकता है।
MySQL आपको एक अलग एस्केप कैरेक्टर निर्दिष्ट करने की अनुमति देता है ESCAPE क्लॉज का उपयोग करके समान पैटर्न के लिए। उदाहरण के लिए, निम्नलिखित क्वेरी एस्केप कैरेक्टर के रूप में पाइप (|) कैरेक्टर का उपयोग करती है:
SELECT * FROM `titles` जहां title LIKE 'test\\' ESCAPE '|';
In इस उदाहरण में, खोज शब्द में एकल बैकस्लैश की शाब्दिक व्याख्या की गई है क्योंकि यह निर्दिष्ट एस्केप कैरेक्टर से पहले है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3