เมื่อต้องการค้นหาแถวที่ตัวอักษรตำแหน่งที่ 2 เป็นช่องว่าง (Whitespace) ให้ใช้ฟังก์ชัน SUBSTR() (หรือ SUBSTRING()) ดึงตัวอักษรตำแหน่งที่ 2 มาเปรียบเทียบ
รูปแบบคำสั่ง
SELECT * FROM yourTableName WHERE SUBSTR(yourColumnName, 2, 1) = ' ';
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล (บางแถวมี Space ตำแหน่งที่ 2):
mysql> create table DemoTable1365 (Value varchar(20));
mysql> insert into DemoTable1365 values('9756757474'),('3 45322333'),('8974646363'),('9 566363622');
ข้อมูล:
+-------------+ | Value | +-------------+ | 9756757474 | | 3 45322333 | | 8974646363 | | 9 566363622 | +-------------+
คำสั่งค้นหาที่มี Space ตำแหน่งที่ 2
mysql> select * from DemoTable1365 where substr(Value, 2, 1) = ' ';
ผลลัพธ์ (ได้ 2 แถวที่มี Space ตำแหน่งที่ 2)
+-------------+ | Value | +-------------+ | 3 45322333 | | 9 566363622 | +-------------+
คำอธิบาย:
SUBSTR(str, pos, len)ดึงสตริงย่อยจากตำแหน่งpos(เริ่มที่ 1) ความยาวlenSUBSTR(Value, 2, 1)= ตัวอักษรตัวที่ 2 เพียงตัวเดียว- เปรียบเทียบกับ
' '(Space หนึ่งช่อง) - ใช้
TRIM(),REPLACE()ทำความสะอาดข้อมูลก่อน Insert เพื่อป้องกันปัญหานี้ - MySQL 8.0+ ใช้
REGEXP '^ .'(ขึ้นต้นด้วยตัวอักษรใดๆ ตามด้วย Space) ได้อีกวิธี