Using ORDER BY to Sort Query Results
Problem
Output rows from a query don’t come out in the order you want.
Solution
Add an ORDER
BY
clause to the query to sort the result
rows.
Discussion
The contents of the driver_log
and mail
tables shown in the chapter
introduction are disorganized and difficult to make any sense of. The
exception is that the values in the id
and t
columns are in order, but that’s just coincidental. Rows do tend to be
returned from a table in the order they were originally inserted, but
only until the table is subjected to delete and update operations.
Rows inserted after that are likely to be returned in the middle of
the result set somewhere. Many MySQL users notice this disturbance in
row retrieval order, which leads them to ask, “How can I store
rows in my table so they come out in a particular order when I
retrieve them?” The answer to this question is, “That’s
the wrong question.” Storing rows is the server’s job, and you
should let the server do it. Besides, even if you can specify storage
order, how would that help you if you want to see results sorted in
different orders at different times?
When you select rows, they’re pulled out of the database and returned in whatever order the server happens to use. This order might change, even for statements that don’t sort rows, depending on which index the server happens to use when it executes a statement, because the index can affect the retrieval order. Even if your rows appear to come out in the proper order naturally, ...
Get MySQL Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.