MYSQL получает первую ненулевую частоту с порядком по длине ASCMySql

Форум по Mysql
Anonymous
MYSQL получает первую ненулевую частоту с порядком по длине ASC

Сообщение Anonymous »

Примеры записей
Мне нужно получить первую запись, которая имеет ненулевой порядок частоты по длине ASC. Если нет записи ненулевой частоты, извлеките запись ASC максимальной длины.
Вот что я попробовал:

Код: Выделить всё

select word, length, frequency
from `dataset`
where `word` LIKE '%aeto%'
and `length` >= 3
ORDER BY length ASC,frequency desc;

Код: Выделить всё

select word, length, frequency
from `dataset`
where `word` LIKE '%aeto%'
and `length` >= 3
ORDER BY CASE WHEN frequency IS NULL THEN length
ELSE frequency
END
, length asc, `frequency` desc
Окончательное решение, которое я могу придумать:
  • Запустить запрос, чтобы получить запись, которая не равна нулю. частота и порядок по длине ASC. Если у нас его нет, попробуйте выполнить первый запрос и получите первый результат.
Ожидаемый результат:
В соответствии с образцом, мне нужно ФАЭТОН в качестве результата. Если я опущу ФАЭТОН и ПРЕТОРИАН (оба имеют ненулевую частоту), то в качестве результата мне понадобится ПРЕТОР
Структура таблицы и данные: https://dbfiddle.uk/32lmcKAj

Подробнее здесь: https://stackoverflow.com/questions/793 ... length-asc

Вернуться в «MySql»