Таблица запросов, но сначала укажите конкретный идентификатор - PullRequest
2 голосов
/ 02 июля 2011

У меня есть таблица в моей базе данных, которая называется «папки».

Как сделать запрос, который выводит все, но сначала всегда указывается определенный идентификатор?

Позволяет использовать идентификатор "12345"для папки, в которой я хочу быть первым.

В настоящее время я использую это:

mysql_query("SELECT id, name FROM folders WHERE memberid='$session_userid' ORDER BY name ASC ") or die(mysql_error());

Я попытался Google, но ничего не появляется, и я совершенно пуст: (

Ответы [ 2 ]

4 голосов
/ 02 июля 2011

Вам просто нужно добавить еще одно предложение ORDER BY для ваших особых критериев. Любое выражение, которое даст одно значение для вашей «предпочтительной» записи и второе значение для всех остальных записей, будет работать.

mysql_query("SELECT id, name FROM folders
    WHERE memberid='$session_userid'
    ORDER BY IF(id=12345, 1, 2), name ASC") or die(mysql_error());
0 голосов
/ 02 июля 2011

ORDER BY FIELD () позволяет сортировать строки по пользовательским значениям, поэтому это должно работать:

SELECT id, name 
FROM folders 
WHERE memberid='$session_userid' 
ORDER BY FIELD( id, '12345' ) DESC , name ASC

Если вам нужно, чтобы сначала были перечислены 2 папки (скажем, id1 = '12345' и id2 ='23456') запрос будет

SELECT id, name 
FROM folders 
WHERE memberid='$session_userid' 
ORDER BY FIELD( id, '12345' , '23456' ) DESC , name ASC

РЕДАКТИРОВАТЬ: Добавлено "DESC" в ORDER BY FIELD ().ASC по умолчанию, папка с id = "12345" будет указана последней!

...