Ответ 1
Select * from Members
WHERE MemberID = "6" or MemberId="3" or MemberID="5"
ORDER BY MemberID = "6" DESC, MemberId="3" DESC, MemberID="5" DESC;
Есть ли способ заставить mysql возвращать результаты из базы данных-члена по заказу, который я запрашиваю в команде WHERE?
SELECT *
FROM Members
WHERE MemberID = "6"
OR MemberId="3"
OR MemberID="5"
В настоящее время он вернет результаты, упорядоченные с помощью UserID ASC независимо от того, что я делаю. Я хочу, чтобы он вернулся на 6,3,5, то есть в том порядке, в котором я его прошу.
Select * from Members
WHERE MemberID = "6" or MemberId="3" or MemberID="5"
ORDER BY MemberID = "6" DESC, MemberId="3" DESC, MemberID="5" DESC;
SELECT
*
FROM
Members
WHERE
MemberID IN ("6","3","5")
ORDER BY
FIELD(MemberID,"6","3","5");
Попробуйте следующее:
SELECT * FROM Members
ORDER BY CASE MemberId
WHEN 6 THEN 1
WHEN 3 THEN 2
WHEN 5 THEN 3
ELSE 999
END
Попробуйте выбрать данные с помощью 3 UNION ALL
запросов:
SELECT * FROM Members WHERE MemberID = "6"
UNION ALL
SELECT * FROM Members WHERE MemberId = "3"
UNION ALL
SELECT * FROM Members WHERE MemberID = "5"
или, возможно, вам нужно просто добавить новый столбец для хранения порядка сортировки?
Попробуйте это
Select * from Members WHERE MemberID = "6" or MemberId="3" or MemberID="5" order by
MemberID = "6" desc
MemberId="3" desc
MemberID="5" desc
Смотреть это сообщение раз
Как сделать результаты запроса MYSQL? ЗАКАЗАТЬ порядок условий?
нет.
вы должны указать предложение ORDER BY, чтобы все было в любом повторяемом порядке.
Если вы можете построить некоторую логику, которая определяет порядок, то вы можете включить это в ORDER BY, иначе вы не сможете.
Вы можете рассмотреть возможность добавления другой структуры данных для сопоставления ваших "случайных" значений с последовательностью или другим значением заказа, а затем с использованием этого.