Как получить случайную запись из базы данных MS Access - PullRequest
13 голосов
/ 30 марта 2012

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

Ответы [ 3 ]

24 голосов
/ 21 октября 2013

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

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

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

14 голосов
/ 30 марта 2012

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

MySQL

SELECT questionID FROM questions ORDER BY RAND() LIMIT 1

MS Access

SELECT top 1 questionID from questions ORDER BY rnd(questionID)
4 голосов
/ 29 марта 2017
SELECT TOP 5 questionID FROM [tableName] ORDER BY rnd(INT(NOW*questionID)-NOW*questionID)

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

...