As much as I would think it would be.. Could you think of any reason why it wouldnt work then for me with the following:-
The version of MySQL is:- 3.23.41 on Linux kernel version 2.4.7-2 on a Redhat 8 server. The table (table1) has the following fields:- author varchar(128) category varchar(64) title varchar(128) location varchar(64) platform varchar(40) note varchar(128) The query I tried is:- SELECT * from table1 WHERE title LIKE %keyword% ORDER BY title LIMIT 0,10; Any help would be greatly appreciated. karel pitra wrote: > >it's not true, order by is performed before limit. if it was the other >way round , limit would be almost useless > > >>Hadn't thought about this before, but what it means (I guess) is that LIMIT >>works on the selection, not on the presentation. >> >>What I'm trying to say is that when you consider the sequence in which a >>SELECT statement is carried out by the database, an ORDER BY is the second >>but last thing that's done (the last being a further restriction of the >>result set through a HAVING clause, if present). At the time of the >>ordering you already have a result set for the query, and the database is >>now only working on the way this result set is presented to the user. >> >>I presume that LIMIT applies to the gathering of the result set, i.e. you >>get the required number of rows from the query up to and including the >>WHERE clause. Only then it gets ordered, but if your result set does not >>contain the records with an 'A' they can't get ordered either. Don't know >>whether I'm explaining this very well, but perhaps you get the idea. >> >>... >> >>Have gone and tested it now (3.23.42 on Win2K). Here is the SQL text and >>the results: >> >>---< cut >> >>DROP DATABASE IF EXISTS ordertest; >>CREATE DATABASE ordertest; >>USE ordertest; >> >>CREATE TABLE letters ( >> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, >> letter CHAR NOT NULL >>); >> >>INSERT INTO letters >> (letter) >>VALUES >> ('C'), >> ('C'), >> ('C'), >> ('C'), >> ('C'), >> ('C'), >> ('M'), >> ('N'), >> ('T'), >> ('W'), >> ('A'), >> ('B'); >> >>SELECT letter >>FROM letters >>LIMIT 10; >> >>+--------+ >> >>| letter | >> >>+--------+ >> >>| C | >>| C | >>| C | >>| C | >>| C | >>| C | >>| M | >>| N | >>| T | >>| W | >> >>+--------+ >>10 rows in set (0.00 sec) >> >>SELECT letter >>FROM letters >>ORDER BY letter >>LIMIT 10; >> >>+--------+ >> >>| letter | >> >>+--------+ >> >>| A | >>| B | >>| C | >>| C | >>| C | >>| C | >>| C | >>| C | >>| M | >>| N | >> >>+--------+ >>10 rows in set (0.37 sec) >> >>--< cut >> >>Surprise, surprise, turns out MySQL behaves not the way I thought it would, >>but rather the way you thought it should. Are you perhaps running a >>different version? And could you perhaps show us your table structure(s) >>and query so that we can find out what's really happening there? >> >>Cheers, >>Christian Sage >> >> >>--------------------------------------------------------------------- >>Before posting, please check: >> http://www.mysql.com/manual.php (the manual) >> http://lists.mysql.com/ (the list archive) >> >>To request this thread, e-mail <[EMAIL PROTECTED]> >>To unsubscribe, e-mail <[EMAIL PROTECTED]> >>Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php >> -- "Wise men talk because they have something to say; fools talk because they have to say something." - Plato Ashwin Kutty Systems Administrator Dalhousie University Libraries (902) 494-2694 --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php