Как выбрать рандомно строки, если в определённом поле встречаются дубликаты?

Доброго времени суток!
Столкнулся с проблемой реализации запроса такой выборки.
Есть таблица, состоящая из трёх полей (id, header_id, user_id). Значение поля user_id может неоднократно повторяться. Необходимо выбрать строки, входящие в определённый диапазон (то есть ... WHERE user_id IN (...) ). При этом, если в найденных строках значение user_id будет повторяться, то необходимо выбрать рандомно одну (строку) из них.
Как можно реализовать подобное?
Заранее благодарен!
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
@guras256
SELECT 
	s.* 
FROM
	(SELECT
	    t.id
	    ,t.header_id
	    ,t.user_id
	FROM
	   test t
	WHERE
		t.user_id in (1,2,3,4,5)
	ORDER BY RAND()) s
GROUP BY s.user_id
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@inDeepCode
SELECT DISTINCT ...  GROUP BY('user_id') ORDER BY RAND();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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