MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

मारियाडीबी में माइनस ऑपरेटर का उपयोग करते समय त्रुटि 1064 (42000) को ठीक करें

कम से कम कुछ संभावित कारण हैं जो आपको खतरनाक त्रुटि 1064 (42000) प्राप्त कर रहे हैं जो पढ़ता है "आपको अपने SQL सिंटैक्स में त्रुटि है ..." आदि MINUS का उपयोग करने का प्रयास करते समय मारियाडीबी में ऑपरेटर।

मैं इन्हें नीचे एक्सप्लोर करूंगा और कुछ समाधान पेश करूंगा।

त्रुटि का उदाहरण

यहां कोड का एक उदाहरण दिया गया है जो त्रुटि का कारण बनता है:

SELECT TeacherName FROM Teachers
MINUS
SELECT StudentName FROM Students;

परिणाम:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT StudentName FROM Students' at line 3

आम तौर पर, यह त्रुटि तब उत्पन्न होती है जब आपके कोड में कोई त्रुटि होती है। जैसा कि यह स्पष्ट रूप से बताता है "आपको अपने SQL सिंटैक्स में त्रुटि है"।

हालाँकि, यह यहाँ कई संभावनाओं में से केवल एक है।

मेरे मामले में, मेरे सिंटैक्स में कोई त्रुटि नहीं है। कोई और कारण होना चाहिए।

नीचे इस त्रुटि के कुछ संभावित कारण और प्रत्येक को ठीक करने के सुझाव दिए गए हैं।

समाधान 1

सबसे पहले, MINUS ऑपरेटर को मारियाडीबी 10.6.1 में पेश किया गया था। इसलिए, यदि आप MariaDB का पुराना संस्करण चला रहे हैं, तो MINUS ऑपरेटर आपके लिए काम नहीं करेगा।

इस मामले में, अपने मारियाडीबी इंस्टॉलेशन को नवीनतम संस्करण (या कम से कम, 10.6.1 से पहले के संस्करण) में अपग्रेड करें।

समाधान 2

दूसरे, MINUS ऑपरेटर केवल Oracle मोड में काम करता है। हालांकि इसका स्पष्ट रूप से मारियाडीबी के दस्तावेज़ीकरण में उल्लेख नहीं किया गया है, यह MINUS को लागू करने के कार्य में निहित है। मारियाडीबी में ऑपरेटर।

यदि आप पहले से ही MariaDB 10.6.1 या बाद के संस्करण चला रहे हैं, तो MINUS का उपयोग करने से पहले आपको Oracle मोड में स्विच करना होगा ऑपरेटर।

इसलिए, MINUS . का उपयोग शुरू करने से पहले निम्न कोड चलाएँ ऑपरेटर:

SET sql_mode = "oracle";

अब आपको MINUS . का उपयोग करने में सक्षम होना चाहिए आपके कोड में ऑपरेटर।

समाधान 3

यदि आपने उपरोक्त सभी को कर लिया है, लेकिन फिर भी आपको कोई त्रुटि मिल रही है, तो संभव है कि वास्तव में है आपके सिंटैक्स में त्रुटि।

उदाहरण के लिए, मैं Oracle मोड में MariaDB 10.6.1 चला रहा हूं, लेकिन निम्न कोड त्रुटि उत्पन्न करता है:

SELECT TeacherName FROM Teachers;
MINUS
SELECT StudentName FROM Students;

परिणाम:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MINUS
. के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें

इस मामले में, मैंने गलती से पहले SELECT . के बाद सेमी-कोलन शामिल कर लिया था बयान, जो एक सामान्य गलती है। इसे ठीक करने के लिए, मैं बस उस पहले सेमी-कोलन को हटा दूंगा:

SELECT TeacherName FROM Teachers
MINUS
SELECT StudentName FROM Students;

परिणाम:

+-------------+
| TeacherName |
+-------------+
| Ben         |
| Cathy       |
+-------------+

सफलता!

समाधान 4

यदि आपने उपरोक्त सभी समाधानों का प्रयास किया है, लेकिन आपको अभी भी कोई त्रुटि मिल रही है, तो शायद यह EXCEPT का उपयोग करने का समय है ऑपरेटर। MINUS ऑपरेटर EXCEPT . का पर्याय है , इसलिए वे दोनों एक ही सिंटैक्स का उपयोग करते हैं और एक ही परिणाम देते हैं।

SELECT TeacherName FROM Teachers
EXCEPT
SELECT StudentName FROM Students;

परिणाम:

+-------------+
| TeacherName |
+-------------+
| Ben         |
| Cathy       |
+-------------+

समाधान 5

अगर अब तक आप MINUS . के साथ कुछ नहीं करना चाहते हैं या EXCEPT , एक और विकल्प है।

आप समान परिणाम वापस करने के लिए निम्न की तरह एक सबक्वेरी का उपयोग कर सकते हैं:

SELECT 
    DISTINCT TeacherName
FROM Teachers t 
WHERE NOT EXISTS (SELECT StudentName FROM Students s
WHERE t.TeacherName = s.StudentName);

जाहिर है, आपके द्वारा उपयोग की जाने वाली सटीक क्वेरी आपके स्कीमा और डेटा पर निर्भर करेगी।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे TO_DAYS () मारियाडीबी में काम करता है

  2. मारियाडीबी JSON_REPLACE () समझाया गया

  3. Percona XtraDB क्लस्टर या MariaDB क्लस्टर के लिए क्लस्टर-टू-क्लस्टर प्रतिकृति को कैसे कॉन्फ़िगर करें

  4. मारियाडीबी पावर () समझाया गया

  5. कैसे जोड़ें () मारियाडीबी में काम करता है