* Yoed > Lets say I have a query similar to: > > SELECT * FROM company WHERE id='3' OR id='1' OR id='7' ; > > I want to be able to get the results to come out ordered by the order > the ids were searched (the sequence in the WHERE OR; 3 first then 1, > then 7...), so the results would be like: > > Row | id | name > ------------------- > 0 | 3 | Joe's Co > 1 | 1 | Buymart > 2 | 7 | The big evil > > As it is the results returns it like id 1, then 3, and 7.
Try using the FIELD() function (PHP example): $idlist = "3,1,7"; mysql_query("SELECT * FROM company WHERE id IN ($id_list) ORDER BY FIELD(id,$id_list)"); ... which expands to: SELECT * FROM company WHERE id IN (3,1,7) ORDER BY FIELD(id,3,1,7); The FIELD() function is documented here: <URL: http://www.mysql.com/doc/en/String_functions.html > I guess your 'id' field is an integer, and this is a string function, but it should work anyway. If your 'id' is a string type column, you must quote each id like you did in your example. -- Roger -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]