मैं एक गलती की है और प्रवेश किया:एसक्यूएल रिटर्न सभी रिकॉर्ड
SELECT * FROM table LIMIT1
SELECT * FROM table LIMIT 1
(LIMIT
और 1
के बीच की जगह पर ध्यान दें) MySQL के CLI में । मुझे किसी प्रकार की पार्स त्रुटि प्राप्त होने की उम्मीद है, लेकिन मैं आश्चर्यचकित था, क्योंकि क्वेरी ने तालिका में सभी रिकॉर्ड लौटाए। मेरा पहला विचार "बेवकूफ MySQL था, मुझे लगता है कि यह PostgreSQL में त्रुटि लौटाएगा", लेकिन PostgreSQL ने सभी रिकॉर्ड भी वापस कर दिए। फिर उसी परिणाम के साथ SQLite के साथ इसका परीक्षण किया।
कुछ खोदने के बाद, मुझे एहसास हुआ कि इससे कोई फर्क नहीं पड़ता कि मैं तालिका के बाद क्या दर्ज करता हूं। जब तक वहाँ कोई WHERE/ORDER/GROUP
खंड हैं:
SELECT * FROM table SOMETHING -- works and returns all records in table
SELECT * FROM table WHERE true SOMETHING -- doesn't work - returns parse error
मुझे लगता है कि यह एक मानकीकृत व्यवहार है, लेकिन क्यों है कि मैं किसी भी स्पष्टीकरण नहीं पा सके। कोई विचार?
आप किसी भी तालिका एक प्रश्न में एक उपनाम दे सकते हैं के लिए के रूप में कीवर्ड के उपयोग के लिए मजबूर करना चाहते हैं। यह आपको स्वयं-जुड़ने में सक्षम बनाता है (एक ही तालिका को एक से अधिक बार निर्दिष्ट करें)। –
@ निकोलामार्कोविनोविच स्पॉट ऑन।ओपी ने 'टेबल' को 'LIMIT1' के रूप में उपनाम दिया है, आपको जवाब के रूप में पोस्ट करना चाहिए। –
यहां से संबंधित एकमात्र टैग सुझाव है 'sql' – Smandoli