में एकल बराबर मैं सोच रहा था कि क्यों MySQL एक समान बराबर संकेतों के बजाय सशर्त बयान में एक समान बराबर चिह्न का उपयोग करता है। क्या इसके लिए कोई तकनीकी/ऐतिहासिक कारण है? धन्यवाद।MYSQL
MYSQL
उत्तर
हाय, मैं सोच रहा था कि क्यों MYSQL एक समान बराबर संकेतों के बजाय सशर्त बयान में एक समान बराबर चिह्न का उपयोग करता है। क्या इसके लिए कोई तकनीकी/ऐतिहासिक कारण है? धन्यवाद।
तुलना की तुलना में तुलना SQL
में तुलना अधिक आम है।
यही कारण है कि SQL
अधिक सामान्य चीजों को करने के लिए अधिक संक्षिप्त वाक्यविन्यास का उपयोग करता है।
शास्त्रीय SQL
में, तुलना संदर्भ द्वारा काम से प्रतिष्ठित किया जा सकता है (काम केवल एक UPDATE
बयान के SET
खंड में हो सकता है), इसलिए एक ऑपरेटर दोनों कार्यों के लिए इस्तेमाल किया जा सकता है।
MySQL
के SQL
के विस्तार में, एक सत्र चर करने के लिए काम से :=
ऐतिहासिक की तरह अधिक।
यह एसक्यूएल है। इसने शुरुआती '70 के दशक से तुलना के लिए एक समान बराबर चिह्न का उपयोग किया है।
निरूपित किया जाता है वहाँ एसक्यूएल में अस्पष्टता के लिए एक मामला नहीं है।
C.J.Date (1987 संस्करण), असाइनमेंट के लिए =
द्वारा मूल एक गाइड एसक्यूएल स्टैंडर्ड करने के लिए केवल UPDATE
की SET
खंड में प्रयोग किया जाता है। हर जगह =
का उपयोग किया जाता है इसका उपयोग तुलना के लिए किया जाता है।
लेकिन अन्य भाषाओं में, जैसे सी/सी ++/सी #/जावा, =
असाइनमेंट के रूप में उपयोग किया जा सकता है लेकिन यह एक मूल्य भी देता है। तो a = b
का अर्थ है "a
b
के बराबर निर्धारित करते हैं, और वापसी a
" जबकि a == b
का अर्थ है "वापसी true
अगर a
और b
बराबर हैं"। (यह सी कार्यक्रमों में एक बहुत ही आम बग की ओर जाता है, क्योंकि if (a = b)
और if (a == b)
दोनों मान्य है, क्योंकि इसका परिणाम एक bool होना जरूरी नहीं है।)
जावास्क्रिप्ट/ECMAScript की तरह कुछ भाषाओं में तीसरे प्रकार के रूप में ===
परिचय तुलना की उन भाषाओं में, ==
का अर्थ है "उसी प्रकार में कनवर्ट करें और तुलना करें" जबकि ===
का अर्थ है "वापसी true
केवल तभी यदि वे एक ही प्रकार और समान मान हैं।"
एसक्यूएल Ingres 'QUEL से विकसित नहीं हुआ था। QUEL, हालांकि शायद कुछ तरीकों से एक बेहतर डिजाइन, एसक्यूएल द्वारा आपूर्ति की गई थी। – lavinio
@lavinio: सही, उस भाग को हटा दिया। – Quassnoi