Когда я пытаюсь получить случайную строку из таблицы по идентификатору с помощью функции RAND()
, я получаю неожиданные нестабильные результаты. Следующий запрос (где столбец id является первичным ключом) возвращает 1, 2 или более строк:
Я также попробовал следующий вариант, который дает тот же результат:
SELECT id, word FROM words WHERE id = FLOOR(RAND() * 1000)
Я нашел другое решение для моей задачи:
SELECT id, word FROM words ORDER BY RAND() LIMIT 1
Но я хочу знать, почему поведение MySQL столь неожиданно при использовании такой элементарной функциональности. Это пугает меня.
Я экспериментировал в разных IDE с одинаковыми результатами.