Как перетасовать вопросы для каждого студента (но не order by rand)?

Есть ли какой-нибудь рандомный способ вывода данных, но при этом, что б они не изменялись каждый раз?
Например, Есть таблица вопросов для тестирования(содержит,например, вопросы 1,5,9,20), мне нужно выбрать рандомно данные из таблицы для пользователя id 5 - например 20,5,1,9 а для пользователя id 20 -другую комбинацию. Но суть в том, что б если пользователь id 5 запрашивает свои вопросы- у него должна быть комбинация (1,5,9,20) , а не вновь сгенерированная рандомная.
Можно конечно один раз сгенерировать последовательность для каждого и внести в таблицу, но как сделать, что б по id пользователя выводились определённые рандомные последовательности, а не просто рандомные данные? можно ли как-то по синусоиде либо ещё какой-нибудь функции перемешать вопросы?

Спасибо
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
не делать инициализацию рандав языке программирования и оно будет генерить всегда одинаковые рандомы подряд.
Ответ написан
Комментировать
yarosroman
@yarosroman
C# the best
Сделать таблицу
UserId, QuestId, заполняем как нам надо, потом SELECT * FROM Quest WHERE QuestID IN (SELECT QuestId WHERE UserId=1) ORDER BY RAND.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы