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

แบบสอบถาม MySQL เพื่อตั้งค่าลบในลำดับจากมากไปน้อยก่อนจากนั้นจึงค่าบวกในลำดับจากน้อยไปมาก


สำหรับสิ่งนี้ คุณสามารถใช้ UNION ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable-> (-> Number int-> );เคียวรีตกลง 0 แถวได้รับผลกระทบ (1.17 วินาที)

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

mysql> แทรกลงในค่า DemoTable(10) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า DemoTable (100) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable ( -9); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า DemoTable (-190); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable (190); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า DemoTable (0) ตกลงแบบสอบถาม 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า DemoTable (140); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที)

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

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

ผลลัพธ์

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

<ก่อนหน้า>+---------+| เบอร์ |+-------+| 10 || 100 || -9 || -190 || 190 || 0 || 140 |+--------+7 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงค่าลบในลำดับจากมากไปน้อย และค่าบวกในลำดับจากน้อยไปมาก เริ่มแรก เรากำลังแสดง 0 −

mysql> (เลือก *จาก DemoTable โดยที่ Number=0)-> union-> (เลือก *จาก DemoTable โดยที่ Number <0 เรียงลำดับตามหมายเลข)-> union-> (เลือก *จาก DemoTable โดยที่ Number> 0 เรียงลำดับตาม จำนวน);

ผลลัพธ์

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

<ก่อนหน้า>+---------+| เบอร์ |+-------+| 0 || -9 || -190 || 10 || 100 || 190 || 140 |+--------+7 แถวในชุด (0.03 วินาที)