Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ค้นหาแถวที่มีช่องว่าง (Whitespace) ตำแหน่งที่ 2 ใน MySQL ด้วย SUBSTR

เมื่อต้องการค้นหาแถวที่ตัวอักษรตำแหน่งที่ 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) ความยาว len
  • SUBSTR(Value, 2, 1) = ตัวอักษรตัวที่ 2 เพียงตัวเดียว
  • เปรียบเทียบกับ ' ' (Space หนึ่งช่อง)
  • ใช้ TRIM(), REPLACE() ทำความสะอาดข้อมูลก่อน Insert เพื่อป้องกันปัญหานี้
  • MySQL 8.0+ ใช้ REGEXP '^ .' (ขึ้นต้นด้วยตัวอักษรใดๆ ตามด้วย Space) ได้อีกวิธี