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

เราสามารถใช้ IN() เพื่อค้นหาระหว่างค่าที่คั่นด้วยเครื่องหมายจุลภาคภายในหนึ่งฟิลด์ได้หรือไม่


แทนที่จะใช้ IN() ให้ใช้ FIND_IN_SET เพื่อค้นหาค่าที่คั่นด้วยเครื่องหมายจุลภาคภายในหนึ่งฟิลด์ ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable -> ( -> ข้อความ ListOfValues ​​-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.56 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable('10|20|30|40|50|60|100');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------------------+| ListOfValues ​​|+--------------------------------------+| 10|20|30|40|50|60|100 |+-----------------------+1 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อค้นหาระหว่างค่าที่คั่นด้วยเครื่องหมายจุลภาคภายในหนึ่งฟิลด์ -

mysql> เลือก FIND_IN_SET(100, แทนที่(ListOfValues,'|',',')) จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อน>+--------------------------------------------- ----+| FIND_IN_SET(100, แทนที่(ListOfValues,'|',',')) |+------------------------------------ -------------------+| 7 |+--------------------------------------------- --+1 แถวในชุด (0.04 วินาที)