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

รับบันทึกในลำดับที่แน่นอนโดยใช้ MySQL?


คุณสามารถใช้ ORDER BY IF() เพื่อรับบันทึกในลำดับที่แน่นอนได้ ให้เราสร้างตารางก่อน:

mysql> สร้างตาราง DemoTable (รหัส int ไม่ใช่ NULL AUTO_INCREMENT คีย์หลัก, ชื่อจริง varchar(20), varchar สาขา (20)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.96 วินาที)

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

mysql> แทรกลงในค่า DemoTable(FirstName,Branch) ('John','CS');Query OK, 1 แถวได้รับผลกระทบ (0.22 วินาที)mysql> แทรกลงในค่า DemoTable (FirstName,Branch) ('Carol', 'ME');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.25 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อสาขา) ('David', 'ME'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงใน ค่า DemoTable(FirstName,Branch)('Bob','CE');Query OK, 1 แถวได้รับผลกระทบ (0.35 วินาที)mysql> แทรกลงในค่า DemoTable (FirstName,Branch) ('Robert','EE');Query OK , 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงในค่า DemoTable (ชื่อ, สาขา) ('Chris', 'EEE'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.27 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ, สาขา) ('James','ME');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.56 วินาที)

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

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

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

<ก่อนหน้า>+----+-----------+-------+| รหัส | ชื่อจริง | สาขา |+----+-----------+-------+| 1 | จอห์น | CS || 2 | แครอล | ฉัน || 3 | เดวิด | ฉัน || 4 | บ๊อบ | ซีอี || 5 | โรเบิร์ต | EE || 6 | คริส | EEE || 7 | เจมส์ | ME |+----+-----------+-------+7 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อรับบันทึกในลำดับที่แน่นอนโดยใช้ MySQL ลำดับที่เรากำหนดให้เริ่มด้วย Branch ‘ME’:

mysql> เลือก *จากคำสั่ง DemoTable โดย if(Branch='ME',1,0)DESC,Branch;

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

<ก่อนหน้า>+----+-----------+-------+| รหัส | ชื่อจริง | สาขา |+----+-----------+-------+| 2 | แครอล | ฉัน || 3 | เดวิด | ฉัน || 7 | เจมส์ | ฉัน || 4 | บ๊อบ | ซีอี || 1 | จอห์น | CS || 5 | โรเบิร์ต | EE || 6 | คริส | EEE |+----+-----------+-------+7 แถวในชุด (0.00 วินาที)