У меня есть база данных больших продуктов, и каждый воскресный день мой скрипт активирует 50 новых продуктов. вещь, основанная на некоторых правилах в моем скрипте, я найду некоторые продукты, которые я должен уделить приоритету активации. (для вашего примера, можно сказать, что всегда нужно устанавливать приоритеты активации продуктов с именем «hello kitty» и «meshuggah» в них, прежде чем все остальное).Как я могу отсортировать результат mysql по списку приоритетных идентификаторов?
В моей таблице db содержится информация о продукте и уникальный идентификатор. позволяет сказать, что сценарий находит 5 из этих идентификаторов, получив звание котенка в названии.
поэтому, как я могу сделать запрос, чтобы приоритетные элементы появлялись сверху, а затем следует id desc?
здесь некоторые псевдокод, что им после того, как:
SELECT * FROM products order by (id='59', id='47', id='28', id='29', id='20'), id desc limit 50
результат должен дать мне ID 59, 47, 28, 29 и 20, а затем следуют другие идентификаторы в таблице продуктов, отсортированных по идентификатору по убыванию.
возможно ли это в одном запросе?
ах, спасибо, узнайте что-то новое каждый день :) просто нужно было добавить desc за полем, иначе полевые идентификаторы вышли на дно –
@KristianRafteseth это замечательно ': D' –
Обратите внимание, что это работает, потому что FIELD() возвращается 0, если значение 'id' (в данном случае) не найдено. Выполняя порядок DESC, он сортирует нули до нижней части и использует второй поисковый запрос (здесь, 'id'), чтобы отсортировать их. –