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

จะจัดเรียงข้อมูลตามลำดับเฉพาะใน MySQL ได้อย่างไร


ใช้ ORDER BY IF() เพื่อจัดเรียงข้อมูลตามลำดับเฉพาะ ต่อไปนี้เป็นไวยากรณ์ -

เลือก *จาก yourTableName ORDER BY IF(yourColumnName=yourValue1 ORyourColumnName=yourValue2 OR yourColumnName=yourValue3,yourColumnName,~yourColumnName) ASC;

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง ArrangeDataInSpecificOrder -> ( -> StudentId int, -> StudentName varchar(20) -> );Query OK, 0 แถวได้รับผลกระทบ (0.64 วินาที)

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

mysql> แทรกลงในค่า sortDataInSpecificOrder (10, 'Larry'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า arrangeDataInSpecificOrder (15, 'Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที )mysql> แทรกลงในค่า arrangeDataInSpecificOrder (100, 'Sam'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า sortDataInSpecificOrder (70, 'Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า sortDataInSpecificOrder (90,'Bob');Query OK, 1 แถวที่ได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงใน sortDataInSpecificOrder ค่า (300,'David'); Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)

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

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

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

<ก่อนหน้า>+-----------+-------------+| รหัสนักศึกษา | ชื่อนักเรียน |+-----------+-------------+| 10 | แลร์รี่ || 15 | ไมค์ || 100 | แซม || 70 | แครอล || 90 | บ๊อบ || 300 | David |+-----------+-------------+6 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อจัดเรียงข้อมูลในลำดับเฉพาะ -

mysql> เลือก * จาก ArrangeDataInSpecificOrder ORDER BY IF(StudentId=300 ORStudentId=100 OR StudentId=10,StudentId, ~StudentId) ASC;

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

<ก่อนหน้า>+-----------+-------------+| รหัสนักศึกษา | ชื่อนักเรียน |+-----------+-------------+| 10 | แลร์รี่ || 100 | แซม || 300 | เดวิด | | 90 | บ๊อบ || 70 | แครอล || 15 | Mike |+-----------+-------------+6 แถวในชุด (0.00 วินาที)