मैं mysql का उपयोग कर रहा हूं और एक शून्य मान के साथ एक कॉलम को अपडेट करने की आवश्यकता है। मैंने इसे कई अलग-अलग तरीकों से आज़माया है और मुझे जो सबसे अच्छा मिला है वह एक खाली स्ट्रिंग है।
क्या ऐसा करने के लिए एक विशेष वाक्यविन्यास है?
मैं mysql का उपयोग कर रहा हूं और एक शून्य मान के साथ एक कॉलम को अपडेट करने की आवश्यकता है। मैंने इसे कई अलग-अलग तरीकों से आज़माया है और मुझे जो सबसे अच्छा मिला है वह एक खाली स्ट्रिंग है।
क्या ऐसा करने के लिए एक विशेष वाक्यविन्यास है?
जवाबों:
कोई विशेष वाक्यविन्यास नहीं:
CREATE TABLE your_table (some_id int, your_column varchar(100));
INSERT INTO your_table VALUES (1, 'Hello');
UPDATE your_table
SET your_column = NULL
WHERE some_id = 1;
SELECT * FROM your_table WHERE your_column IS NULL;
+---------+-------------+
| some_id | your_column |
+---------+-------------+
| 1 | NULL |
+---------+-------------+
1 row in set (0.00 sec)
NULL
SQL में एक विशेष मान है। तो एक संपत्ति को शून्य करने के लिए, यह करें:
UPDATE table SET column = NULL;
IS
इसके बजाय का उपयोग करें =
यह आपकी समस्या का समाधान करेगा सिंटैक्स:
UPDATE studentdetails
SET contactnumber = 9098979690
WHERE contactnumber IS NULL;
यह देखना याद रखें कि क्या आपका कॉलम अशक्त हो सकता है। आप उस का उपयोग कर सकते हैं
mysql> desc my_table;
यदि आपका कॉलम अशक्त नहीं हो सकता है, जब आप मान को शून्य करने के लिए सेट करते हैं, तो यह उसका कास्ट वैल्यू होगा।
यहाँ एक उदाहरण है
mysql> create table example ( age int not null, name varchar(100) not null );
mysql> insert into example values ( null, "without num" ), ( 2 , null );
mysql> select * from example;
+-----+-------------+
| age | name |
+-----+-------------+
| 0 | without num |
| 2 | |
+-----+-------------+
2 rows in set (0.00 sec)
mysql> select * from example where age is null or name is null;
Empty set (0.00 sec)
इसी तरह की समस्या का सामना करने वालों के लिए, मैंने पाया कि जब एक SET = NULL
क्वेरी का 'अनुकरण' करते हुए , PHPMyAdmin एक त्रुटि फेंक देगा। यह एक लाल हेरिंग है .. बस क्वेरी चलाएँ और सब ठीक हो जाएगा।
उपर्युक्त उत्तरों में, कई तरीके और पुनरावृत्तियाँ उसी के लिए सुझाई गई हैं। मैं एक उत्तर की तलाश में रहता था जैसा कि उल्लेख किया गया है, यह सवाल है, लेकिन यहां नहीं मिला।
लेकिन उपरोक्त प्रश्न के विपरीत "एक शून्य मान के साथ एक स्तंभ को अपडेट करें" हो सकता है "पूर्ण करने के लिए कॉलम में सभी अपडेट्स को अपडेट करें"
ऐसी स्थिति में निम्नलिखित कार्य करता है
update table_name
set field_name = NULL
where field_name is not NULL;
is
साथ ही is not
mysql में काम करता है
के is
बजाय का उपयोग करें=
उदाहरण के लिए: Select * from table_name where column is null
खाली स्ट्रिंग का एक और संभावित कारण, एक सच्चे अशक्त के बजाय यह है कि क्षेत्र एक सूचकांक है या एक सूचकांक का हिस्सा है। यह मेरे साथ हुआ: phpMyAdmin का उपयोग करते हुए, मैंने " Null " चेकबॉक्स की जाँच करके " सहेजें " बटन को दबाकर NULLs को अनुमति देने के लिए अपनी एक तालिका में एक फ़ील्ड की संरचना को संपादित किया । " टेबल मूल्य निर्धारण को सफलतापूर्वक बदल दिया गया है " प्रदर्शित किया गया था इसलिए मैंने माना कि परिवर्तन हुआ - यह नहीं हुआ। उन सभी फ़ील्डों को NULL में सेट करने के लिए एक अद्यतन करने के बाद , वे, इसके बजाय, खाली तारों पर सेट थे , इसलिए मैंने फिर से तालिका संरचना पर एक नज़र डाली और देखा कि " अशक्त"उस फ़ील्ड के लिए कॉलम ' नहीं ' पर सेट किया गया था । तभी मुझे एहसास हुआ कि यह फ़ील्ड प्राथमिक कुंजी का हिस्सा था !
यदि आप null वैल्यू सेट करना चाहते हैं तो अपडेट क्वेरी सेट कॉलम वैल्यू का उपयोग करके NULL (बिना कोट्स) के अपडेट करें tablename सेट कॉलमनाम = NULL
हालाँकि, यदि आप सीधे mysql कार्यक्षेत्र के अंदर फ़ील्ड मान संपादित कर रहे हैं, तो चयनित कॉलम में शून्य मान सम्मिलित करने के लिए (Esc + del) कीस्ट्रोक का उपयोग करें
यदि आप अनुसरण करते हैं
UPDATE table SET name = NULL
फिर नाम "" नहीं है NULL IN MYSQL का मतलब है आपकी क्वेरी
SELECT * FROM table WHERE name = NULL
अपने आप को काम या निराश न करें
मुझे संदेह है कि यहाँ समस्या यह है कि उद्धरण आपके स्ट्रिंग मान में शाब्दिक के रूप में दर्ज किए गए थे। आप इन स्तंभों का उपयोग करके शून्य करने के लिए सेट कर सकते हैं:
UPDATE table SET col=NULL WHERE length(col)<3;
आपको पहले यह देखना चाहिए कि ये मूल्य वास्तव में कुछ "" जैसे हैं:
SELECT DISTINCT(col) FROM table WHERE length(col)<3;