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

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


ในการดึงบันทึกจากค่าที่คั่นด้วยเครื่องหมายจุลภาค ให้ใช้ MySQL FIND_IN_SET() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1548 -> ( -> StudentId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20), -> ArrayListOfMarks varchar(100) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.88 วินาที) 

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

mysql> แทรกลงในค่า DemoTable1548(StudentName,ArrayListOfMarks) ('Chris','56,78,90,87'); ตกลง ตกลง 1 แถวที่ได้รับผลกระทบ (0.29 วินาที)mysql> แทรกลงใน DemoTable1548(StudentName,ArrayListOfMarks) ค่า ('Bob','90,78,65');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงใน DemoTable1548 (StudentName,ArrayListOfMarks) ค่า ('David','91,34,56,78, 87');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)

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

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

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

<ก่อนหน้า>+-----------+-------------+-----------------+| รหัสนักศึกษา | ชื่อนักเรียน | ArrayListOfMarks |+-----------+-------------+--------------------------+| 1 | คริส | 56,78,90,87 || 2 | บ๊อบ | 90,78,65 || 3 | เดวิด | 91,34,56,78,87 |+-----------+-------------+------------- -----+3 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อดึงบันทึกเฉพาะที่ตรงกันจากค่าที่คั่นด้วยเครื่องหมายจุลภาค -

mysql> เลือก * จาก DemoTable1548 โดยที่ find_in_set('87',ArrayListOfMarks);

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

<ก่อนหน้า>+-----------+-------------+-----------------+| รหัสนักศึกษา | ชื่อนักเรียน | ArrayListOfMarks |+-----------+-------------+--------------------------+| 1 | คริส | 56,78,90,87 || 3 | เดวิด | 91,34,56,78,87 |+-----------+-------------+------------- -----+2 แถวในชุด (0.00 วินาที)