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