Я разработал сценарий викторины с использованием базы данных MySQL в качестве моего бэкэнд.
У меня есть 20
вопросов, и я хотел бы отображать их в случайном порядке из базы данных. Я пытался:
SELECT * from mst_que ORDER BY RAND();
Что делает этот запрос, повторяется несколько строк.
Если таблица содержит повторяющиеся записи, используйте SELECT DISTINCT
для их фильтрации.
SELECT DISTINCT *
FROM mst_que
ORDER BY RAND()
Приложению order by
clausule нужны имена столбцов или относительные позиции , а не значения или значения. Так , Попробуйте добавить RAND к выбору и порядку. Попробуй это:
SELECT *, RAND() as ordering
FROM mst_que
ORDER by ordering;
ORDER BY RAND()
- это очень распространенная идиома, которая отлично работает.
ORDER BY
может следовать любое выражение, оно не обязательно должно быть именем столбца.
SELECT DISTINCT
для удаления дубликатов.