यदि फ़ील्ड NULL है तो उसे अपडेट करने के लिए IS NULL प्रॉपर्टी का उपयोग UPDATE कमांड के साथ करें।
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable (
StudentScore int );
Query OK, 0 rows affected (0.47 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable values(89); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(NULL); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(45); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(NULL); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(56); Query OK, 1 row affected (0.14 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable;
यह निम्नलिखिक आउटपुट देगा:
+--------------+ | StudentScore | +--------------+ | 89 | | NULL | | 45 | | NULL | | 56 | +--------------+ 5 rows in set (0.00 sec)
MySQL में फ़ील्ड को अपडेट करें यदि यह NULL है
mysql> update DemoTable set StudentScore=30 where StudentScore IS NULL; Query OK, 2 rows affected (0.34 sec) Rows matched: 2 Changed: 2 Warnings: 0
आइए टेबल रिकॉर्ड एक बार फिर जांचें।
mysql> select * from DemoTable;
यह निम्नलिखिक आउटपुट देगा:
+--------------+ | StudentScore | +--------------+ | 89 | | 30 | | 45 | | 30 | | 56 | +--------------+ 5 rows in set (0.00 sec)
व्याख्या
WHERE StudentScore IS NULLकेवल NULL मान वाली पंक्तियाँ ढूंढता है= NULLकाम नहीं करता (NULL = NULL अज्ञात है); हमेशाIS NULLउपयोग करें- दोनों NULL मान 30 से बदल दिए गए
- गैर-NULL मान (89, 45, 56) अपरिवर्तित रहते हैं
संबंधित: COALESCE के साथ SELECT
SELECT COALESCE(StudentScore, 30) AS Score FROM DemoTable;
यह NULL को 30 से बदलकर दिखाता है, लेकिन टेबल नहीं बदलता।
डिफ़ॉल्ट मान सेट करना (भविष्य के INSERT के लिए)
ALTER TABLE DemoTable MODIFY StudentScore INT DEFAULT 30;