Sortering av poster via SQL-förfrågan i Python
För att sortera raderna i resultatet,
behöver du använda kommandot ORDER
BY.
Exempel
Låt oss välja alla användare från vår tabell users
och sortera dem efter ålder från
mindre till större:
query = "SELECT * FROM users ORDER BY age"
Resultatet av den utförda koden:
{'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}
Exempel
Låt oss ändra sorteringsordningen med hjälp av
kommandot DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Resultatet av den utförda koden:
{'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}
Exempel
Låt oss välja alla användare med en lön på 500
och sortera dem efter ålder från mindre
till större:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Resultatet av den utförda koden:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Exempel
Du kan sortera efter inte ett fält, utan efter flera. Låt oss som exempel välja alla användare och sortera dem först efter stigande ålder, och användare med samma ålder sorterar vi efter stigande lön:
query = "SELECT * FROM users ORDER BY age, salary"
Resultatet av den utförda koden:
{'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}
Exempel
Kommandot ORDER BY kan kombineras
med LIMIT. I så fall behöver du
skriva sorteringskommandot först, och sedan - limit.
I följande exempel sorterar vi först
posterna efter stigande ålder, och sedan
tar vi de första 3 styckena:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Resultatet av den utförda koden:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Praktiska uppgifter
Hämta alla användare och sortera dem efter stigande lön.
Hämta alla användare och sortera dem efter fallande lön.
Hämta alla användare och sortera dem efter namn.
Hämta användare med en lön på 500 och
sortera dem efter ålder.
Hämta alla användare och sortera dem efter namn och efter lön.
Sortera användare efter stigande lön
och få de första 3 anställda från
sorteringsresultatet.
Sortera användare efter fallande lön
och få de första 3 användarna från
sorteringsresultatet.