कुछ जोड़ों को डीबग करने का प्रयास करना जो कार्टेशियन उत्पादों को लौटने के लिए लग रहा था, मैंने चयन में बराबर स्थिति को टाइप किया।क्या यह एक वैध SQL सशर्त अभिव्यक्ति या एक MySQL बग (सुविधा) है?
MySQL
select *
from table
where columnname
में के रूप में यद्यपि मैं where columname is not null
टाइप किया व्यवहार करने लगता है। टाइपिंग में शामिल होने में on table.columnname
स्वीकार किया जाता है लेकिन पंक्तियों के बहुत सारे रिटर्न देता है। MySQL सही काम करता है अगर मैं इसे on table1.column=table2.column
पर सही करता हूं लेकिन निश्चित रूप से मेरा पहला संस्करण गलत और अवैध था।
संभावित रूप से यह 'कॉलमनाम' में मूल्य को बुलियन तक रखता है और उन पंक्तियों को वापस करता है जहां यह सत्य का मूल्यांकन करता है। –
@ मार्टिनस्मिथ: MySQL में असली बूलियन डेटाटाइप नहीं है। यह बस हर नंबर का इलाज करता है जो शून्य के रूप में शून्य नहीं है। वहां 'foo से हटाएं जहां 42' अमान्य वाक्यविन्यास के बारे में शिकायत किए बिना आपकी तालिका में सभी पंक्तियों को खुशी से हटा देगा। –
@a_horse_with_no_name - तारों के बारे में क्या? क्या उन्हें हमेशा '' 1 'के अलावा' झूठी 'के रूप में माना जाता है? ऐसा लगता है कि [इस एसक्यूएल फिडल] (http://sqlfiddle.com/#!2/c252c/2) –