Speaking SQL (part 2) - Reading Backwards (
Page 4 of 8 )
If you'd like to see the data from your
table ordered by a specific field, SQL offers the ORDER BY construct. This
construct allows you to specify both the column name and the direction in which
you would like to see data (ascending or descending).
For example, if
you'd like to see data from the "members" table above arranged by id, you could
try this:
mysql> SELECT * FROM members ORDER BY member_id;
+-----------+-------+---------+---------+----------------------------+
| member_id | fname | lname | tel | email |
+-----------+-------+---------+---------+----------------------------+
| 1 | John | Doe | 1234567 | jdoe@somewhere.com |
| 2 | Jane | Doe | 8373728 | jane@site.com |
| 3 | Steve | Klingon | 7449373 | steve@alien-race.com |
| 4 | Santa | Claus | 9999999 | santa@the-north-pole.com | |
+-----------+-------+---------+---------+----------------------------+
4 rows in set (0.06 sec)
And you could reverse the order with
mysql> SELECT * FROM members ORDER BY member_id DESC;
+-----------+-------+---------+---------+----------------------------+
| member_id | fname | lname | tel | email |
+-----------+-------+---------+---------+----------------------------+
| 4 | Santa | Claus | 9999999 | santa@the-north-pole.com | |
| 3 | Steve | Klingon | 7449373 | steve@alien-race.com |
| 2 | Jane | Doe | 8373728 | jane@site.com |
| 1 | John | Doe | 1234567 | jdoe@somewhere.com |
+-----------+-------+---------+---------+----------------------------+
4 rows in set (0.00 sec)
You can limit the number of records in the result set with
the LIMIT keyword - this keyword takes two parameters, which specify the row to
start with and the number of rows to display. So the query
SELECT * FROM videos LIMIT 2,2;
would return rows 3 and 4 from the result set.
mysql> SELECT * FROM videos LIMIT 2,2;
+----------+------------------+--------------+
| video_id | title | director |
+----------+------------------+--------------+
| 3 | Charlie's Angels | McG |
| 4 | Any Given Sunday | Oliver Stone |
+----------+------------------+--------------+
2 rows in set (0.00 sec)
You can combine the ORDER BY and LIMIT constructs to quickly
get the four newest records in the table - as the following example
demonstrates;
mysql> SELECT * FROM videos ORDER BY video_id DESC LIMIT 0, 4;
+----------+------------------+----------------+
| video_id | title | director |
+----------+------------------+----------------+
| 6 | Woman On Top | Fina Torres |
| 5 | Hollow Man | Paul Verhoeven |
| 4 | Any Given Sunday | Oliver Stone |
| 3 | Charlie's Angels | McG |
+----------+------------------+----------------+
4 rows in set (0.00 sec)
This article copyright Melonfire
2001. All rights reserved.