Запрос в MySql не очень рандомно выбирает записи

Рейтинг: 0Ответов: 1Опубликовано: 03.05.2023

Помогите усовершенствовать данный запрос( он должен выбирать рандомно запись из таблицы, но почему-то это происходит не очень рандомно - в таблице из 2000 записей стабильно выбирает записи только до 200 записи)

SELECT user_id, ht_number, q_number
FROM ht_user_p2
JOIN questions2 
ON questions2.q2_id = ht_user_p2.q_id
WHERE questions2.q2_public=1 
AND ht_user_p2.user_ball IS NOT NULL 
AND user_id > FLOOR(1 + RAND() * (SELECT MAX(user_id) FROM ht_user_p2))
LIMIT 1

Ответы

▲ 0

Попробуйте так, не самый быстрый вариант, но самый читабельный:

SELECT user_id, ht_number, q_number
FROM ht_user_p2
JOIN questions2 
ON questions2.q2_id = ht_user_p2.q_id
WHERE questions2.q2_public=1 
AND ht_user_p2.user_ball IS NOT NULL 
ORDER BY RAND() LIMIT 1