Doctrine Query с подзапросом, упорядочить по, ранду и сгруппировать по - PullRequest
0 голосов
/ 03 марта 2019

У нас есть таблица, из которой мы хотим выбрать случайную строку из последних 1000 записей.Однако пользователь может вводить несколько раз, и независимо от количества записей у каждого пользователя должен быть одинаковый шанс.В настоящее время это решается с помощью собственного запроса (см. Ниже), который работает.Мне было интересно, можно ли перевести это поведение в оператор Doctrine, поскольку в будущем мы планируем перейти с MySQL на PostgreSQL.

Текущее решение:

$conn = $this->em->getConnection();
$sql = 'SELECT tmp.username FROM (SELECT username, id FROM entries ORDER BY id DESC limit 1000) AS tmp GROUP BY tmp.id ORDER BY RAND() LIMIT 1';
$stmt = $conn->prepare($sql);
$stmt->execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...