การตรวจสอบค่า Whitespace/Empty ด้วย TRIM และ COALESCE
ใช้ TRIM() ตัดช่องว่างหน้า/หลัง แล้ว COALESCE() จัดการ NULL แล้วเทียบกับ Empty String
ตัวอย่าง
mysql> create table DemoTable826(
FirstName varchar(100),
Age int );
Query OK, 0 rows affected (0.60 sec)
mysql> insert into DemoTable826 values(' ', 24);
mysql> insert into DemoTable826 values(' ', 22);
mysql> insert into DemoTable826 values('Chris', 26);
mysql> insert into DemoTable826 values('Robert', 27);
คำสั่งค้นหาแถวที่ FirstName เป็น Whitespace/Empty/NULL
mysql> select * from DemoTable826
where COALESCE(TRIM(FirstName), '') = '';
ผลลัพธ์:
+-----------+------+
| FirstName | Age |
+-----------+------+
| | 24 |
| | 22 |
+-----------+------+
คำอธิบาย
TRIM(FirstName)- ตัด Space/Tab/Newline หน้าและหลัง (NULL ยังคงเป็น NULL)COALESCE(..., '')- แปลง NULL เป็น Empty String ''= ''- เปรียบเทียบว่าหลัง Trim แล้วว่างเปล่าหรือไม่
กรณีอื่นๆ
-- หาเฉพาะ NULL
WHERE FirstName IS NULL
-- หาเฉพาะ Empty String ('')
WHERE FirstName = ''
-- หา Whitespace (Space, Tab, Newline)
WHERE TRIM(FirstName) = '' AND FirstName IS NOT NULL
-- ทั้งหมด (NULL, '', ' ', '\t', '\n')
WHERE COALESCE(TRIM(FirstName), '') = ''
สรุป
ใช้ WHERE COALESCE(TRIM(col), '') = '' จับได้ทั้ง NULL, Empty String, และ Whitespace เท่านี้