Получить случайные записи с помощью ORDER BY RAND() в MySQL

Чтобы получить случайную запись из базы данных MySQL с помощью предложения ORDER BY RAND(), вы можете использовать следующие методы:

Метод 1: использование LIMIT 1

SELECT * FROM table_name
ORDER BY RAND()
LIMIT 1;

Метод 2: использование подзапроса

SELECT * FROM table_name
WHERE id = (
    SELECT id FROM table_name
    ORDER BY RAND()
    LIMIT 1
);

Метод 3: использование JOIN

SELECT t1.* FROM table_name AS t1
JOIN (
    SELECT (RAND() * (SELECT MAX(id) FROM table_name)) AS id
) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id ASC
LIMIT 1;

Метод 4. Использование генератора случайных чисел

SELECT * FROM table_name
WHERE RAND() < (
    SELECT ((1 / COUNT(*)) * 10) FROM table_name
)
LIMIT 1;

Метод 5. Использование переменной

SELECT * FROM (
    SELECT * FROM table_name
    ORDER BY RAND()
) AS t
LIMIT @row_num := 1;