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

ใช้สตริงคั่นด้วยจุลภาคในเงื่อนไข IN() ของ MySQL

ใน MySQL เงื่อนไข IN() รับรายการค่าที่คั่นด้วยจุลภาคโดยตรง หากมีสตริงที่คั่นด้วยจุลภาคอยู่ในคอลัมน์ (เช่น '10,20,50') การใช้ IN('10,20,50') จะถือว่าสตริงทั้งหมดเป็นค่าเดียว ไม่ใช่ 3 ค่าแยกกัน

ตัวอย่างการใช้งาน

สร้างตารางเก็บสตริงตัวเลขคั่นจุลภาค:

mysql> create table DemoTable1314 (Number varchar(100));
mysql> insert into DemoTable1314 values('45,67,89');
mysql> insert into DemoTable1314 values('10,20,50');
mysql> insert into DemoTable1314 values('90,56,45');

ข้อมูลในตาราง:

+----------+
| Number   |
+----------+
| 45,67,89 |
| 10,20,50 |
| 90,56,45 |
+----------+

คำสั่งค้นหาด้วย IN()

mysql> select * from DemoTable1314 where Number IN('10,20,50');

ผลลัพธ์

+----------+
| Number   |
+----------+
| 10,20,50 |
+----------+

ข้อสังเกตสำคัญ: คำสั่งนี้ค้นหาค่าที่ตรงกับสตริง '10,20,50' ทุกตัวอักษร ไม่ได้ แยกเป็น 10, 20, 50 แยกกัน หากต้องการค้นหาแยกตัวเลข ต้องใช้ FIND_IN_SET() หรือปรับโครงสร้างข้อมูล (Normalize) ให้แยกคอลัมน์/แถวแทน