@AlexGawr

Mysql почему запрос на выборку с фильтрацией по ключевому полю выдает несколько значений?

Есть временная таблица `tmp_table` с двумя полями:
`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `id_event` int(11), PRIMARY KEY ( `id` ).
В этой таблице 15 строк. Необходимо выводить случайным образом значение `id_event`. Я написал запрос:
SELECT `id_event` FROM `tmp_table` WHERE `id` = FLOOR( RAND() * 15 + 1);
При тестировании запрос иногда выдает пустое значение, иногда несколько строк. Что я сделал не правильно?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
RAND у вас вызывается для каждой строки и вы получаете те строки, в которых произошло совпадение по условию. Теоретически, есть вероятность, что вы получите все строки.
Попробуйте так:
WHERE `id` > RAND() * 15
LIMIT 1
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы