Как получить случайную запись из базы данных MS Access

У меня есть база данных MS access. При этом одна таблица состоит из вопросов и ответов с первичным ключом questionID. Мне нужно получить случайный вопрос из этой таблицы, используя questionID. Какие ключевые слова или запрос следует использовать для этого сценария.

3 ответов


следующее получит случайный questionID из вашей таблицы

в MySQL

SELECT questionID FROM questions ORDER BY RAND() LIMIT 1

MS Access

SELECT top 1 questionID from questions ORDER BY rnd(questionID)

чтобы получить другую случайную запись, которую вы можете использовать, для чего потребуется поле ID в вашей таблице

SELECT TOP 1 questionID FROM questions ORDER BY Rnd(-(100000*questionID)*Time())

отрицательное значение, переданное в качестве параметра RND-функции, доставит первое случайное значение из генератора, используя этот параметр в качестве начального значения. (Своего рода определенная рандомизация). Отдельное спасибо подсказке @kobik из комментариев.


SELECT TOP 5 questionID FROM [tableName] ORDER BY rnd(INT(NOW*questionID)-NOW*questionID)

Это даст вам новый набор ответов каждый раз, вам даже не нужно составлять время, когда вы используете "сейчас" (который будет каждый раз, когда вы нажмете это, независимо от того, как быстро вы нажмете), на мой взгляд, самый простой и аккуратный способ решить эту проблему в Access.