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

จะเลือกแถวได้อย่างไรหากแถวแรกถูกสุ่มและส่วนที่เหลือเรียงลำดับตามเกณฑ์ด้วย MySQL


สำหรับสิ่งนี้ คุณสามารถใช้คำสั่ง ORDER BY CASE ให้เราสร้างตาราง -

mysql> สร้างตาราง DemoTable1926 ( Position varchar(20), Number int );Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1926 ('สูงสุด',50) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1926 ('สูงสุด', 30); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที )mysql> แทรกลงในค่า DemoTable1926 ('ต่ำสุด', 100); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1926 ('ต่ำสุด', 120); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1926 ('ต่ำสุด',90); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)

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

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

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

<ก่อนหน้า>+----------+---------+| ตำแหน่ง | เบอร์ |+----------+---------+| สูงสุด | 50 || สูงสุด | 30 || ต่ำสุด | 100 || ต่ำสุด | 120 || ต่ำสุด | 90 |+----------+-------+5 แถวในชุด (0.00 วินาที)

ต่อไปนี้คือข้อความค้นหาเพื่อเลือกแถวหากแถวแรกถูกสุ่มและเรียงลำดับตามเกณฑ์ -

mysql> เลือก * จาก DemoTable1926 เรียงลำดับตามตำแหน่ง desc, กรณีตำแหน่งเมื่อ 'สูงสุด' จากนั้น rand() อื่น ๆ Number end asc;

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

<ก่อนหน้า>+----------+---------+| ตำแหน่ง | เบอร์ |+----------+---------+| ต่ำสุด | 90 || ต่ำสุด | 100 || ต่ำสุด | 120 || สูงสุด | 50 || สูงสุด | 30 |+----------+-------+5 แถวในชุด (0.00 วินาที)