SimBioT19
@SimBioT19
{{ user.about }}

Выбор случайной записи из БД?

Есть рабочий код запроса
SELECT id, name
FROM table
WHERE status = 1 ORDER BY MD5( CONCAT( ID, CURRENT_TIMESTAMP ) ) LIMIT 1

Насколько он производителен и есть ли более лучшая замена?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега MySQL
А чем вас это не устраивает?
SELECT id, name
FROM table
WHERE status = 1 ORDER BY RAND() LIMIT 1
Ответ написан
kimono
@kimono
Web developer
Оба варианта весьма затратны. Делается в 2 запроса.:
Первый запрос получает количество записей. Второй запрашивает то что вам нужно с рандомным смещением offset.
Ответ написан
Ваш ответ на вопрос

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

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