เป็นเรื่องปกติที่จะเลือกข้อมูลหรือแถวบางอย่างจากตาราง แถวจะถูกส่งคืนตามลำดับที่ปรากฏในตาราง บางครั้งเราอาจต้องการให้แถวที่เราเลือกจากตารางต้องส่งคืนให้เราโดยเรียงลำดับจากน้อยไปมากหรือมากไปหาน้อยตามบางคอลัมน์
คำสั่ง "ORDER BY" ใช้เพื่อเรียงลำดับผลลัพธ์ตามคอลัมน์บางคอลัมน์ ตัวอย่างต่อไปนี้จะให้ความชัดเจนมากขึ้น
สมมติว่าเรามีตารางที่ประกอบด้วยฟิลด์ต่างๆ รวมทั้งฟิลด์ "ชื่อ" เราต้องการเลือกแถวทั้งหมดจากตาราง แต่เราต้องการให้แถวเรียงตามลำดับตัวอักษรของชื่อ นี่คือที่มาของคำสั่ง "ORDER BY" สถานการณ์นี้กำหนดให้เราต้องเรียงลำดับผลลัพธ์จากน้อยไปหามากของฟิลด์ "ชื่อ"
คำสั่ง "ORDER BY" โดยค่าเริ่มต้น จะเรียงลำดับคอลัมน์ที่ระบุในลำดับจากน้อยไปมาก หากคุณต้องการให้ผลลัพธ์เรียงลำดับจากมากไปน้อย คุณต้องระบุให้เหมือนกัน หากต้องการเรียงลำดับผลลัพธ์จากมากไปน้อย ให้ระบุคีย์เวิร์ด “DESC”
ไวยากรณ์
ลำดับจากน้อยไปมาก
เลือก * จาก table_name ORDER BY column_name
เรียงลำดับจากมากไปน้อย
SELECT * FROM table_name ORDER BY column_name DESC
ขั้นตอนที่เกี่ยวข้องกับการสั่งซื้อข้อมูลที่ดึงมาจากตารางโดยใช้ MySQL ใน python
-
นำเข้าตัวเชื่อมต่อ MySQL
-
สร้างการเชื่อมต่อกับตัวเชื่อมต่อโดยใช้ connect()
-
สร้างวัตถุเคอร์เซอร์โดยใช้เมธอด cursor()
-
สร้างแบบสอบถามโดยใช้คำสั่ง mysql ที่เหมาะสม
-
เรียกใช้คำสั่ง SQL โดยใช้เมธอด execute()
-
ปิดการเชื่อมต่อ
สมมติว่าเรามีตารางชื่อ “นักเรียน” ดังนี้ −
<ก่อนหน้า>+----------+---------+-----------+-----------+ | ชื่อ | คลาส | เมือง | เครื่องหมาย |+----------+---------+-----------+-----------+| การัน | 4 | อมฤตสาร์ | 95 || ซาฮิล | 6 | อมฤตสาร์ | 93 || กฤติ | 3 | Batala | 88 || คูชิ | 9 | เดลี | 90 || กีรติ | 5 | เดลี | 85 |+----------+---------+-----------+-----------+ตัวอย่าง
เราต้องการเลือกแถวทั้งหมดจากตารางแต่เรียงตามตัวอักษรของชื่อ กล่าวโดยสรุปคือเราต้องการเรียงลำดับผลลัพธ์จากน้อยไปมาก
นำเข้า mysql.connectordb=mysql.connector.connect(host="your host", user="your username", password="yourpassword",database="database_name")cursor=db.cursor()query=" SELECT * FROM นักเรียน ORDER BY Name"cursor.execute(query) for row in cursor:print(row)
โค้ดด้านบนเมื่อดำเนินการสำเร็จจะคืนค่าแถวจากน้อยไปหามากหรือเรียงตามตัวอักษรของชื่อนักเรียน
ผลลัพธ์
('Amit' , 9 , 'Delhi' , 90)('Karan', 4 ,'Amritsar' , 95)('Kriti' , 3 , 'Batala' ,88)('Priya' , 5 , ' เดลี' ,85)('ซาฮิล' , 6 , 'อมฤตสาร์' ,93)
แถวทั้งหมดที่แสดงอยู่ในลำดับตัวอักษรของชื่อ ในทำนองเดียวกัน แถวอาจถูกจัดเรียงจากน้อยไปหามากหรือมากไปหาน้อยของเครื่องหมายตามรูปแบบที่คล้ายกัน