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

จะเลือกแถว MySQL ตามลำดับคำสั่ง IN ได้อย่างไร?


คุณต้องใช้ฟังก์ชัน FIND_IN_SET() เพื่อเลือกแถว MySQL ตามลำดับคำสั่ง IN ไวยากรณ์มีดังนี้ −

เลือก yourVariableName.*FROM yourTableName yourVariableNameWHERE yourVariableName.yourColumnName IN(value1,value2,...N)ORDER BY FIND_IN_SET( yourVariableName.yourColumnName,'value1,value2,...N');

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง InDemo -> ( -> CodeId int, -> Name varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.95 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังต่อไปนี้ −

mysql> แทรกลงในค่า InDemo (1,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.24 วินาที)mysql> แทรกลงในค่า InDemo (2,'Carol'); Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที )mysql> แทรกลงในค่า InDemo (3, 'Sam'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า InDemo (4, 'Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)

ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังต่อไปนี้ −

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---------+-------+| รหัส | ชื่อ |+---------+-------+| 1 | จอห์น || 2 | แครอล || 3 | แซม || 4 | Bob |+---------+-------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกแถว MySQL ตามลำดับคำสั่ง IN -

mysql> เลือก tbl.* -> จาก InDemo tbl -> โดยที่ tbl.CodeId ใน (1,3,2,4) -> เรียงลำดับตาม FIND_IN_SET( tbl.CodeId,'1,3,2,4');

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---------+-------+| รหัส | ชื่อ |+---------+-------+| 1 | จอห์น || 3 | แซม || 2 | แครอล || 4 | Bob |+---------+-------+4 แถวในชุด (0.00 วินาที)