Чтобы получить случайную запись из базы данных 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;