각 MYSQL 범주에서 무작위 항목 쿼리
데이터베이스 시스템에서는 각 범주에서 무작위 레코드를 선택하는 것이 일반적인 시나리오에 직면합니다. 각각 고유한 ID를 가진 다양한 카테고리에 속하는 항목을 포함하는 Items 테이블이 있는 데이터베이스를 생각해 보세요. 그리고 별도의 카테고리 테이블은 카테고리의 이름과 ID를 제공합니다.
카테고리별로 단일 항목을 무작위로 선택하기 위해 그룹화와 무작위화의 조합을 활용할 수 있습니다.
먼저 항목과 항목을 결합합니다. 항목을 해당 카테고리와 연결하는 카테고리 ID의 카테고리 테이블:
SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category
이렇게 하면 관련 카테고리가 있는 모든 항목이 포함된 결과 집합이 생성됩니다.
이제 항목 선택을 무작위화하기 위해 ORDER BY RAND():
SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND()
각 카테고리를 하나의 항목으로 제한하기 위해 부분적인 GROUP BY:
SELECT * FROM ( SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND() ) AS shuffled_items GROUP BY cid
위 내용은 MySQL의 각 범주에서 하나의 임의 항목을 효율적으로 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!