ใน PHP สตริงว่างเท่ากับ NULL แต่ใน MySQL สตริงว่างไม่เท่ากับ NULL สามารถ INSERT สตริงว่างเข้าไปในคอลัมน์ NOT NULL ได้
ตัวอย่างการใช้งาน
สร้างตารางคอลัมน์ Name เป็น NOT NULL:
mysql> CREATE TABLE EmptyStringNotNullDemo ( Id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(10) NOT NULL, PRIMARY KEY(Id) ); Query OK, 0 rows affected (0.83 sec)
INSERT ข้อมูล (รวมสตริงว่าง):
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('John');
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('');
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('Carol');
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('');
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('');
mysql> INSERT INTO EmptyStringNotNullDemo(Name) VALUES('Larry');
แสดงข้อมูล:
+----+-------+ | Id | Name | +----+-------+ | 1 | John | | 2 | | | 3 | Carol | | 4 | | | 5 | | | 6 | Larry | +----+-------+ 6 rows in set (0.00 sec)
ตรวจสอบว่าสตริงว่างเป็น NULL หรือไม่:
mysql> SELECT Name, Name IS NULL AS EmptyValueIsNotNULL FROM EmptyStringNotNullDemo;
ผลลัพธ์ (ทั้งหมดเป็น 0 = ไม่ใช่ NULL):
+-------+---------------------+ | Name | EmptyValueIsNotNULL | +-------+---------------------+ | John | 0 | | | 0 | | Carol | 0 | | | 0 | | | 0 | | Larry | 0 | +-------+---------------------+
ใช้ User-defined Variable อัปเดตเป็นสตริงว่าง:
mysql> SET @emptyStringValue = ''; mysql> UPDATE EmptyStringNotNullDemo SET Name = @emptyStringValue;