การเรียงลำดับระเบียนผ่านคำสั่ง SQL ใน Python
หากต้องการเรียงลำดับแถวของผลลัพธ์
จำเป็นต้องใช้คำสั่ง ORDER
BY
ตัวอย่าง
ให้เลือกข้อมูลผู้ใช้ทั้งหมดจากตาราง users ของเรา
และเรียงลำดับพวกเขาตามอายุจาก
น้อยไปหามาก:
query = "SELECT * FROM users ORDER BY age"
ผลลัพธ์ของโค้ดที่ดำเนินการ:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
ตัวอย่าง
มาเปลี่ยนลำดับการเรียงลำดับด้วย
คำสั่ง DESC:
query = "SELECT * FROM users ORDER BY age DESC"
ผลลัพธ์ของโค้ดที่ดำเนินการ:
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
ตัวอย่าง
ให้เลือกผู้ใช้ทั้งหมดที่มีเงินเดือน 500
และเรียงลำดับพวกเขาตามอายุจากน้อย
ไปหามาก:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
ผลลัพธ์ของโค้ดที่ดำเนินการ:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
ตัวอย่าง
สามารถเรียงลำดับไม่ใช่แค่ตามฟิลด์เดียว แต่ตาม หลายฟิลด์ได้ ลองมาเลือกตัวอย่าง ผู้ใช้ทั้งหมดและเรียงลำดับพวกเขาตาม อายุจากน้อยไปหามากก่อน แล้วจึงเรียงลำดับ ผู้ใช้ที่มีอายุเดียวกันตามเงินเดือนจาก น้อยไปหามาก:
query = "SELECT * FROM users ORDER BY age, salary"
ผลลัพธ์ของโค้ดที่ดำเนินการ:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
ตัวอย่าง
คำสั่ง ORDER BY สามารถนำมาผสมกันได้
กับ LIMIT โดยในกรณีนี้จำเป็นต้อง
เขียนคำสั่งการเรียงลำดับก่อน แล้วตามด้วย - ลิมิต
ในตัวอย่างต่อไปนี้ ก่อนอื่นให้เรียงลำดับ
ระเบียนตามอายุจากน้อยไปหามาก แล้ว
จึงนำ 3 รายการแรก:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
ผลลัพธ์ของโค้ดที่ดำเนินการ:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
โจทย์ฝึกปฏิบัติ
ให้ดึงข้อมูลผู้ใช้ทั้งหมดและเรียงลำดับพวกเขา ตามเงินเดือนจากน้อยไปหามาก
ให้ดึงข้อมูลผู้ใช้ทั้งหมดและเรียงลำดับพวกเขา ตามเงินเดือนจากมากไปหาน้อย
ให้ดึงข้อมูลผู้ใช้ทั้งหมดและเรียงลำดับพวกเขา ตามชื่อ
ให้ดึงข้อมูลผู้ใช้ที่มีเงินเดือน 500 และ
เรียงลำดับพวกเขาตามอายุ
ให้ดึงข้อมูลผู้ใช้ทั้งหมดและเรียงลำดับพวกเขา ตามชื่อและตามเงินเดือน
ให้เรียงลำดับผู้ใช้ตามเงินเดือนจากน้อยไปหามาก
และได้รับ 3 คนแรกจาก
ผลลัพธ์การเรียงลำดับ
ให้เรียงลำดับผู้ใช้ตามเงินเดือนจากมากไปหาน้อย
และได้รับ 3 ผู้ใช้แรกจาก
ผลลัพธ์การเรียงลำดับ