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

แบบสอบถาม MySQL เพื่อรับสตริงจากคอลัมน์หนึ่งและค้นหาตำแหน่งในคอลัมน์อื่นด้วยค่าที่คั่นด้วยเครื่องหมายจุลภาค?


สำหรับสิ่งนี้ ให้ใช้ FIND_IN_SET() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1866 ( Value1 int, ListOfValues ​​varchar(100) ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1866 (56,'78,56,98,95');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> แทรกลงในค่า DemoTable1866 (103,'103,90,102,104'); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)mysql> แทรกลงในค่า DemoTable1866 (77,'34,45,77,78');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)

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

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

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

<ก่อนหน้า>+---------+----------------+| Value1 | ListOfValues ​​|+---------+----------------+| 56 | 78,56,98,95 || 103 | 103,90,102,104 || 77 | 34,45,77,78 |+-------+----------------+3 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อรับตำแหน่งสตริงในคอลัมน์อื่น -

mysql> เลือก Value1,ListOfValues,find_in_set(Value1,ListOfValues) เป็นเอาต์พุตจาก DemoTable1866

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

<ก่อนหน้า>+---------+----------------+-------+| Value1 | ListOfValues ​​| เอาท์พุต |+-------+----------------+-------+| 56 | 78,56,98,95 | 2 || 103 | 103,90,102,104 | 1 || 77 | 34,45,77,78 | 3 |+---------+----------------+-------+3 แถวในชุด (0.00 วินาที)