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

ฉันจะเลือกทุกแถวทางเลือกและแสดงตามลำดับจากมากไปน้อยใน SQL ได้อย่างไร


หากต้องการดึงข้อมูลทุกแถวอื่น ให้ใช้ MOD() ใต้ WHERE จากนั้นใช้ ORDER BY DESC เพื่อแสดงผลลัพธ์ตามลำดับจากมากไปน้อย -

เลือก *จาก yourTableName โดยที่ mod(yourColumnName,2)=1 เรียงลำดับโดย yourColumnName DESC;

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

mysql> สร้างตาราง DemoTable ( UniqueId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, ClientName varchar(40), ClientAge int); Query OK, 0 แถวได้รับผลกระทบ (1.02 วินาที)

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

mysql> แทรกลงในค่า DemoTable(ClientName,ClientAge) ('Chris',34);เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.47 วินาที)mysql> แทรกลงในค่า DemoTable(ClientName,ClientAge) ('Tom',45);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน DemoTable(ClientName,ClientAge) ค่า ('Sam',36);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน DemoTable(ClientName,ClientAge) values('Carol',42);Query OK, 1 แถวได้รับผลกระทบ (0.25 วินาที)mysql> แทรกลงใน DemoTable(ClientName,ClientAge) values('David',38);Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที) 

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

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

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

<ก่อนหน้า>+----------+-----------+-----------+| UniqueId | ชื่อลูกค้า | อายุลูกค้า |+----------+-----------+-----------+| 1 | คริส | 34 || 2 | ทอม | 45 || 3 | แซม | 36 || 4 | แครอล | 42 || 5 | เดวิด | 38 |+----------+------------+-----------+5 แถวในชุด (0.00 วินาที)

ตอนนี้ให้เราเลือกทุกแถวทางเลือกและแสดงตามลำดับจากมากไปน้อย -

mysql> เลือก *จาก DemoTable โดยที่ mod(UniqueId,2)=1 ลำดับโดย UniqueId DESC;

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

<ก่อนหน้า>+----------+-----------+-----------+| UniqueId | ชื่อลูกค้า | อายุลูกค้า |+----------+-----------+-----------+| 5 | เดวิด | 38 || 3 | แซม | 36 || 1 | คริส | 34 |+----------+------------+-----------+3 แถวในชุด (0.00 วินาที)