2013-06-20 4 views
1

У меня есть таблица:Mysql заказ по значению

posts:идентификатор | автор | содержание

Мне нужно выбрать все записи из этой таблицы одним запросом, но сообщения, написанные автором «demo», должны быть на первом.

ответ

0

Если вы хотите авторскую поле, как первый, то вы должны написать

select author, id, content FROM posts ORDER BY author 

В противном случае

select * FROM posts order by author 
1
SELECT * FROM posts 
ORDER BY CASE 
    WHEN author = 'demo' THEN posts 
END DESC 

demo

если вы хотите заказать кого-то здесь на еще один пример :

_______________________________________________________________________________ 
|                    | 
|                    | 
|  SELECT * FROM post ORDER BY            | 
|  CASE                 | 
|  WHEN author = 'demo' THEN post1           | 
|  WHEN author = 'sdvg' THEN id           | 
|  END DESC                | 
|                    | 
|_______________________________________________________________________________| 

demo

+0

спасибо большое, я постараюсь это один –

+0

@MindaugasJakubauskas я добавил демо и редактировал свой ответ, и другой пример, если вы хотите заказывайте больше, чем автор = demo –

1

Я хотел бы использовать UNION и использовать заданное значение для ORDER BY. Выберите все сообщения от демо-1, а затем те, которые не по демо

SELECT id, author, content, 1 AS special FROM posts WHERE author='demo' 
UNION 
SELECT id, author, content, 0 AS special FROM posts WHERE author<>'demo' 
ORDER BY special DESC 
Смежные вопросы