ใน 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) ให้แยกคอลัมน์/แถวแทน