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

คุณจะเรียงลำดับผลลัพธ์ที่ได้จากการสืบค้นแบบเลือกข้อมูลใน MySQL ได้อย่างไร


เป็นเรื่องปกติที่จะเลือกข้อมูลหรือแถวบางอย่างจากตาราง แถวจะถูกส่งคืนตามลำดับที่ปรากฏในตาราง บางครั้งเราอาจต้องการให้แถวที่เราเลือกจากตารางต้องส่งคืนให้เราโดยเรียงลำดับจากน้อยไปมากหรือมากไปหาน้อยตามบางคอลัมน์

คำสั่ง "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)

แถวทั้งหมดที่แสดงอยู่ในลำดับตัวอักษรของชื่อ ในทำนองเดียวกัน แถวอาจถูกจัดเรียงจากน้อยไปหามากหรือมากไปหาน้อยของเครื่องหมายตามรูปแบบที่คล้ายกัน