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

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

3 ответа

Решение

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

MySQL

SELECT questionID FROM questions ORDER BY RAND() LIMIT 1

MS Access

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

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

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.

Другие вопросы по тегам