MySQL में NULL को मान सेट करें


132

NULLयदि कोई पाठ मेरे द्वारा सबमिट किए जा रहे फॉर्म में कुछ भी नहीं रखा गया है, तो मुझे एक मूल्य निर्धारित करना होगा। मैं यह कैसे कर सकता हूं? मैंने डालने की कोशिश की है, 'NULL'लेकिन यह इस शब्द NULLको क्षेत्र में जोड़ता है ।

मुझे यकीन नहीं है कि मुझे इसके लिए क्या कोड प्रदान करना चाहिए, मैं सिर्फ एक अद्यतन क्वेरी लिख रहा हूं।


12
आपको उद्धरण के null बिना शब्द सम्मिलित करना होगा ..
माइक क्रिस्टेंसन

जवाबों:


268

NULLअपने अपडेट स्टेटमेंट में उद्धरण मत डालें । यह काम करना चाहिए:

UPDATE table SET field = NULL WHERE something = something

यहाँ भी Static analysis: 1 errors were found during analysis. Unrecognized keyword. (near "NULL" at position 35) SQL query: UPDATE programs SET flash = NULL:। - अद्यतन: यह निम्नलिखित WHEREस्थिति थी जो समस्या का कारण बनी!
काई नैक

16

आप शायद 'NULL' उद्धृत कर रहे हैं। NULL MySQL में एक आरक्षित शब्द है, और उद्धरण के बिना डाला / अपडेट किया जा सकता है:

INSERT INTO user (name, something_optional) VALUES ("Joe", NULL);
UPDATE user SET something_optional = NULL;

10
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''

मुझे लगता है कि समस्या यह है कि वह NULL के बजाय 'NULL' का उपयोग कर रहा है।
Nir Alfasi

लेकिन, कुछ देखभाल के साथ, यह मौजूदा wanna-be-null खाली क्षेत्रों को ठीक कर सकता है: P
Erenor Paz

6
if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) {
   $val = 'NULL';
} else {
   $val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'";
}

$sql = "INSERT INTO .... VALUES ($val)";

यदि आप 'NULL'अपनी क्वेरी में रखते हैं, तो आप केवल 4-वर्ण स्ट्रिंग सम्मिलित कर रहे हैं। उद्धरण के बिना, NULLवास्तविक अशक्त मूल्य है।



5

आपको सम्मिलित होना चाहिए null, न कि स्ट्रिंग 'NULL'



2

यहाँ दिए गए उत्तर अच्छे हैं, लेकिन मैं अभी भी NULL पोस्ट करने के लिए संघर्ष कर रहा था और mysql तालिका में शून्य नहीं।

अंत में मैंने नोट किया कि समस्या मेरे द्वारा उपयोग किए जा रहे इन्सर्ट क्वेरी में थी

   $quantity= "NULL";
   $itemname = "TEST";

अब तक सब ठीक है।

मेरी सम्मिलित क्वेरी खराब थी

   mysql_query("INSERT INTO products(quantity,itemname) 
   VALUES ('$quantity','$itemname')");

मैंने पढ़ने के लिए क्वेरी को सही किया।

   mysql_query("INSERT INTO products(quantity,itemname) 
   VALUES ('".$quantity."','$itemname')");

तो $ मात्रा मुख्य स्ट्रिंग के बाहर है। मेरी sql तालिका अब 0 के बजाय शून्य मात्रा रिकॉर्ड करने के लिए स्वीकार की गई है


मैं पदावनत mysql_ फ़ंक्शंस को छोड़ने और mysqli पर स्विच करने या, मेरी प्राथमिकता, पीडीओ की भी सिफारिश करूंगा।
22

2

आपके पास जो समस्या थी वह सबसे अधिक संभावना है क्योंकि mysql बड़े अक्षरों में लिखे गए अशक्त और छोटे मामले में लिखे गए अशक्त के बीच अंतर करता है।

इसलिए यदि आप अशक्त के साथ अपडेट स्टेटमेंट का उपयोग करते हैं, तो यह काम नहीं करेगा। यदि आप इसे NULL पर सेट करते हैं, तो यह ठीक काम करेगा।

धन्यवाद।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.