การอัปเดตเซลล์เฉพาะให้เป็น Empty String ใน MySQL
เมื่อต้องการล้างค่าในเซลล์เฉพาะ (ไม่ใช่ทั้งคอลัมน์) ให้ใช้คำสั่ง UPDATE ร่วมกับเงื่อนไข WHERE ระบุ Primary Key หรือเงื่อนไขที่ระบุแถวได้อย่างชัดเจน
รูปแบบคำสั่ง
UPDATE table_name
SET column_name = ''
WHERE primary_key = value;
ตัวอย่าง: ล้างชื่อของนักเรียนรหัส 1003
1. สร้างตารางและเพิ่มข้อมูล
CREATE TABLE DemoTable (
Id INT,
Name VARCHAR(50)
);
INSERT INTO DemoTable VALUES (1001, 'Robert');
INSERT INTO DemoTable VALUES (1002, 'Sam');
INSERT INTO DemoTable VALUES (1003, 'Tom');
2. ดูข้อมูลก่อนอัปเดต
SELECT * FROM DemoTable;
ผลลัพธ์:
+------+--------+
| Id | Name |
+------+--------+
| 1001 | Robert |
| 1002 | Sam |
| 1003 | Tom |
+------+--------+
3. อัปเดตเซลล์ Name ของ Id=1003 ให้เป็น Empty String
UPDATE DemoTable SET Name = '' WHERE Id = 1003;
ผลลัพธ์การรัน: Query OK, 1 row affected (0.16 sec) Rows matched: 1 Changed: 1 Warnings: 0
4. ตรวจสอบข้อมูลหลังอัปเดต
SELECT * FROM DemoTable;
ผลลัพธ์:
+------+--------+
| Id | Name |
+------+--------+
| 1001 | Robert |
| 1002 | Sam |
| 1003 | |
+------+--------+
Empty String ('') vs NULL: ความแตกต่างสำคัญ
| ลักษณะ | Empty String ('') | NULL |
|---|---|---|
| ความหมาย | มีค่า แต่เป็นข้อความว่าง | ไม่มีค่า / ไม่ทราบค่า |
| ขนาดจัดเก็บ | ใช้พื้นที่เล็กน้อย | ใช้พื้นที่สำหรับ NULL flag |
| การเปรียบเทียบ | ='' ได้ผล TRUE | IS NULL เท่านั้น |
| ฟังก์ชัน LENGTH() | คืนค่า 0 | คืนค่า NULL |
| COUNT(column) | นับรวม | ไม่นับ |
เมื่อไหร่ควรใช้ Empty String vs NULL
- Empty String (''): เมื่อค่าว่างมีความหมายทางธุรกิจ (เช่น "ไม่มีชื่อเล่น", "ยังไม่กรอกที่อยู่")
- NULL: เมื่อค่าไม่ทราบ, ไม่เกี่ยวข้อง, หรือยังไม่ได้ระบุ (เช่น "วันครบรอบงานที่ยังไม่มี", "หมายเลขโทรศัพท์ที่ไม่ได้กรอก")
การแปลง Empty String เป็น NULL (หากต้องการ)
UPDATE DemoTable SET Name = NULL WHERE Name = '';
หรือใช้ NULLIF() (ดูรายละเอียดในบทความ ID 1004074702)