У меня есть таблица:Mysql заказ по значению
posts:
идентификатор | автор | содержание
Мне нужно выбрать все записи из этой таблицы одним запросом, но сообщения, написанные автором «demo», должны быть на первом.
У меня есть таблица:Mysql заказ по значению
posts:
идентификатор | автор | содержание
Мне нужно выбрать все записи из этой таблицы одним запросом, но сообщения, написанные автором «demo», должны быть на первом.
Если вы хотите авторскую поле, как первый, то вы должны написать
select author, id, content FROM posts ORDER BY author
В противном случае
select * FROM posts order by author
SELECT * FROM posts
ORDER BY CASE
WHEN author = 'demo' THEN posts
END DESC
если вы хотите заказать кого-то здесь на еще один пример :
_______________________________________________________________________________
| |
| |
| SELECT * FROM post ORDER BY |
| CASE |
| WHEN author = 'demo' THEN post1 |
| WHEN author = 'sdvg' THEN id |
| END DESC |
| |
|_______________________________________________________________________________|
Я хотел бы использовать 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
спасибо большое, я постараюсь это один –
@MindaugasJakubauskas я добавил демо и редактировал свой ответ, и другой пример, если вы хотите заказывайте больше, чем автор = demo –