получить записи из таблицы, упорядоченные по значению столбца

0

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

-----------------------------
| id  | desc      | state    |
-----------------------------
| 1   | desc 1    | Complete |
| 2   | desc 2    | Open     |
| ... | ...       | ...      |
-----------------------------

Я хочу получить записи в порядке "Открыть", затем "Завершить". Могу ли я сделать это с помощью одного SQL-запроса? Если так, как я должен написать это?

  • 0
    какая у тебя версия mysql
  • 0
    @fa06 fa06 это 5.7.19
Показать ещё 4 комментария
Теги:

2 ответа

0

Попробуйте что-то вроде этого:

select * 
from table_name 
order by decode (state, 'Open', 1, 'Complete', 2, 3)
  • 0
    Есть ли документация по используемой функции decode() ? Пожалуйста, оставьте ссылку.
  • 0
    Я думаю, что decode не доступно в MySQL
Показать ещё 3 комментария
0

Да, вы можете сделать это с помощью оператора ORDER BY и функции FIELD:

SELECT * FROM table1 ORDER BY FIELD(state, 'Open', 'Complete')
  • 0
    Будьте внимательны - если state является «Открыто», ни «Завершено», FIELD(..) вернет 0 и отсортирует строку первым.
  • 0
    @PaulSpiegel Спасибо за указание на это. Но способ возврата записей соответствует моему требованию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню