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

รับชุดระเบียนที่ส่งคืนโดยเรียงลำดับตามตำแหน่ง (ORDER BY) ในส่วนคำสั่ง 'IN' ของ MySQL


หากต้องการส่งคืนลำดับชุดระเบียน คุณต้องใช้ FIND_IN_SET() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง recordSetOrderDemo -> ( -> EmployeeId int, -> EmployeeName varchar(30) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.63 วินาที)

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

mysql> แทรกลงในค่า recordSetOrderDemo (20, "John"); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า recordSetOrderDemo (10, "Larry"); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที )mysql> แทรกลงในค่า recordSetOrderDemo (100, "Mike"); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า recordSetOrderDemo (50, "Sam"); ​​แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า recordSetOrderDemo (10,"David");แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)

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

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

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

<ก่อนหน้า>+------------+--------------+| รหัสพนักงาน | ชื่อพนักงาน |+--------------------+--------------+| 20 | จอห์น || 10 | แลร์รี่ || 100 | ไมค์ || 50 | แซม || 10 | David |+------------+-------------+5 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อส่งคืนลำดับชุดระเบียน -

mysql> เลือก *จาก recordSetOrderDemo โดยที่ EmployeeId IN(100,10,20,50)-> ORDER BY FIND_IN_SET(EmployeeId,'100,10,20,50');

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

<ก่อนหน้า>+------------+--------------+| รหัสพนักงาน | ชื่อพนักงาน |+--------------------+--------------+| 100 | ไมค์ || 10 | แลร์รี่ || 10 | เดวิด || 20 | จอห์น || 50 | แซม |+------------+-------------+5 แถวในชุด (0.03 วินาที)