मेरे पास एक प्रश्न है जिसे मैंने ms sql 2000 से खींच लिया और एक MySQL क्वेरी में प्लग किया। यह काम नहीं किया, MySql * = ऑपरेटर पर चकित होगा। इस उदाहरण में मेरे पास दो वर्चर कॉलम हैं जिन्हें person_name कहा जाता है।एसक्यूएल सर्वर 2000 में यह ऑपरेंड (* = स्टार-बराबर) क्या है?
SELECT * FROM tbl1 a, tbl2 b
WHERE a.id = b.id
AND a.person_name *= b.person_name
मैं अन्य भाषाओं मींट में पता * = myTotal के रूप में भी मींट * मींट = myTotal पढ़ा जा सकता है। हालांकि, मैं उन वर्चर्स के साथ काम कर रहा हूं जिनमें सभी वर्ण, कोई पूर्णांक नहीं है। मैंने इसे लिखा:
AND a.person_name * a.person_name = b.person_name
वोला! ऐसा लगता है कि काम किया है। क्या कोई समझा सकता है कि क्या हो रहा है? क्या * = ऑपरेटर वर्णों को उनके पूर्णांक समकक्षों में परिवर्तित कर रहा है या? और मैं इस ऑपरेटर को वेब पर कहीं भी क्यों नहीं ढूंढ सका?
क्या वे स्ट्रिंग/चार फ़ील्ड हैं? आश्चर्य है कि तारों को गुणा करने के पीछे तर्क क्या होगा। –
हां, वे वर्चर्स फ़ील्ड हैं। मैं खुद से एक ही सवाल पूछ रहा था, "क्यों नरक में आप दो तारों को गुणा करेंगे?" –
और यदि आप अभी भी एसक्यूएल सर्वर 2000 डेटाबेस का उपयोग कर रहे हैं तो * * या * = के सभी उदाहरणों को बाएं जॉइन या राइट जॉइन में तय करने की आवश्यकता है क्योंकि एसक्यूएल सर्वर 2000 में भी अंतर्निहित जुड़ना टूटा हुआ है और यह सही परिणाम नहीं दे रहा है कभी-कभी क्रॉस में शामिल होने के रूप में छेड़छाड़ की जाती है। एसक्यूएल सर्वर में बाहरी जुड़ने के लिए लागू शामिल होने का कभी भी उपयोग नहीं किया जाना चाहिए। – HLGEM