mysql क्या "टेबल से हटाना है जहां शून्य=नल" का मतलब है?




null sql-delete (7)

delete from table where NULL = NULL क्या delete from table where NULL = NULL मतलब है?


एसक्यूएल में, तीन तार्किक मान हैं, अर्थात् TRUE, FALSE और UNKNOWN। जब हम अशक्त से शून्य की तुलना करते हैं, तो शून्य = नल का उपयोग करते हुए, ऑपरेशन UNKNOWN लौटाएगा इसके अलावा, WHERE खंड में सभी UNKNOWN मान फ़िल्टर्ड होते हैं। इसलिए क्वेरी कुछ नहीं करता है।


इस SQL ​​कमांड द्वारा एक भी पंक्ति प्रभावित नहीं है


मुझे लगता है यह डेटाबेस पर निर्भर करता है, लेकिन मेरे ज्ञान के लिए, कुछ भी हासिल नहीं करना चाहिए, क्योंकि नल कभी नल के बराबर नहीं है, कम से कम डीबी सिद्धांत में।


यह उन लोगों को दंडित करता है जिनके पास एएनएसआई_एनएलएलएसएस अपने डेटाबेस में बंद हैं।


संक्षिप्त:

mysql> select null = null, null <> null, null is null, null = 1, null <> 1;
+-------------+--------------+--------------+----------+-----------+
| null = null | null <> null | null is null | null = 1 | null <> 1 |
+-------------+--------------+--------------+----------+-----------+
|        NULL |         NULL |            1 |     NULL |      NULL |
+-------------+--------------+--------------+----------+-----------+
1 row in set (0.00 sec)


mysql> select count(*) from table;
+----------+
| count(*) |
+----------+
|     10   |
+----------+
1 row in set (0.33 sec)


mysql> select * from table where null;
Empty set (0.00 sec)

मतलब, यदि कोई स्थिति रिक्त करने के लिए मूल्यांकन करती है तो इसे MySQL द्वारा गलत माना जाता है, इसलिए delete from table where NULL = NULL वास्तव में कुछ भी नहीं हटाएंगे।

NULL एक विशेष जानवर है जो कोड द्वारा नोट किया गया है


इसका मतलब है कि कुछ भी नहीं हटाएं, क्योंकि शून्य कभी भी कुछ के बराबर नहीं है। या हो सकता है इसका मतलब "कुछ भी नहीं हटाएं, जब तक कि उपयोगकर्ता के डीबीएमएस वास्तव में बेकार नहीं हो जाता है, जिसके मामले में यह सब कुछ नष्ट हो जाता है"।

गंभीरता से हालांकि, उस तरह का निर्माण आम तौर पर तब होता है जब एक WHERE खंड प्रक्रियात्मक रूप से तैयार किया जाता है - "कुछ भी नहीं" के लिए एक विशेष मामला बनाने की बजाय, कभी-कभी यह केवल एक WHERE खंड उत्पन्न करने के लिए सरल होता है जिससे डेटाबेस को कुछ भी नहीं करने का कारण बनता है मैंने आमतौर पर "WHERE 0 = 1" को देखा है, जो कि कम अस्पष्ट है


यह मेज से कुछ भी नहीं हटा देगा NULL नल के बराबर नहीं है

अभी व

तालिका से हटाना जहां शून्य नल है

तालिका से सभी पंक्तियों को हटा देगा





sql-delete