Я использую moodle Multitrack тест для разработки теста оценки карьеры. Я хочу изменить плагин, чтобы отображать случайные вопросы, по одному вопросу за раз. Так что если есть в общей сложности 10 вопросов, тогда он должен сначала показать случайный вопрос, и после его сохранения затем отобразить случайный вопрос из оставшихся 9 вопросов и так далее. Вопросы сохраняются в таблице под названием «magtest_question», поля которой являются:Показать случайные вопросы из таблицы без повторения
id(bigint),
magtestid(bigint),
questiontext(longtext),
questiontextformat(mediumint),
sortorder(bigint).
Вопросы сортируются на основе столбца «SortOrder». Поэтому я попытался изменить запрос для сортировки случайным образом.
SELECT * FROM {magtest_question} WHERE magtestid=? ORDER BY RAND()
Но это будет иногда снова показывать тот же вопрос. Я хочу избежать вопросов, которые предпринимаются. Как я могу достичь этого с помощью SQL-запроса. Пожалуйста помоги.
это не будет показывать один и тот же вопрос снова. Это можно использовать для построения массива вопросов, упорядоченных случайным образом. Тот же эффект может быть достигнут с помощью (например) функции Shuffle PHP. – Strawberry
+1 для клубники ответить. Проверьте наличие повторяющихся значений в таблице данных. Указанный запрос не должен давать повторяющиеся значения. – Djeramon
@Djeramon Я пробовал с 5 вопросами, и он снова показывает тот же вопрос. – user1690835