คำสั่ง: ใช้ IF()
SELECT IF(yourColumnName IS NULL OR yourColumnName = '', 'NULLId', yourColumnName) AS anyVariableName FROM yourTableName;
ตัวอย่าง
สร้างตารางและข้อมูล (มี NULL และ Empty String)
mysql> create table NullAndEmptyDemo (Id varchar(200));
mysql> insert into NullAndEmptyDemo values(NULL),('Smith123'),(' '),('98765'),(NULL),('Carol567'),('');
แสดงข้อมูลดิบ
+----------+ | Id | +----------+ | NULL | | Smith123 | | | | 98765 | | NULL | | Carol567 | | | +----------+
ใช้ IF() ตรวจสอบ
mysql> SELECT IF(Id IS NULL OR Id = '', 'NULLId', Id) AS UpdatedColumnValue FROM NullAndEmptyDemo;
+--------------------+ | UpdatedColumnValue | +--------------------+ | NULLId | | Smith123 | | NULLId | | 98765 | | NULLId | | Carol567 | | NULLId | +--------------------+
สังเกต
- แถวที่ 3: Space
' '→ ไม่ถูกจับ (เพราะไม่ใช่ Empty String) - แถวที่ 7: Empty String
''→ ถูกจับ → กลายเป็น 'NULLId' - ถ้าต้องการจับ Space ด้วย:
TRIM(Id) = ''หรือId = '' OR Id IS NULL OR TRIM(Id) = ''
ฟังก์ชันทางเลือก: COALESCE()
SELECT COALESCE(NULLIF(TRIM(Id), ''), 'NULLId') FROM NullAndEmptyDemo;
จับทั้ง NULL, Empty String, และ Space-only