id 가격 카테고리 등이있는 제품이있는 테이블이 있습니다 ... 가장 최근의 item_category에서 하나의 항목을 추출하려고합니다. 자신의 카테고리). 어떤 여기 MySQL ORDER BY와 GROUP BY를 함께 사용합니다.
는 6 개 범주에서 저 6 개 항목을 얻는다, 코드입니다하지만 그들은 ID로SELECT * from items WHERE item_category = '2' or item_category = '4' or
item_category = '12' or item_category = '13' or item_category = '14' or
item_category = '19' GROUP BY `item_category` ORDER BY `item_id` LIMIT 6
주문은 6 개 항목, 그리고 반환 된 배열에서 실행되는 (가장 작은 ID로) 가장 오래된이다 원래 테이블에.
대신 최신 항목을 exctract 할 수 있습니까?
최고의 쿼리
는 내가 모든select *
from items
where item_category in ("2","4","12","13","14","19")
group by item_category
order by item_category DESC
가 왜'GROUP BY'를 사용할 수 있습니까? –
당신의 쿼리는 다음과 같을 수 있습니다 'SELECT * FROM items where item_category IN ('2', '4', '12', '13', '14', '19 ') ORDER BY item_id DESC LIMIT 6' where 하위 항목 순서로'item_id'에 의해 행을 정렬하는'ORDER BY item_id DESC' 표현식 –
ONLY_FULL_GROUP_BY가 비활성화되면, GROUP BY의 표준 SQL 사용에 대한 MySQL 확장은 선택 목록, HAVING 조건 또는 ORDER BY 목록이 비 집합 열이 기능적으로 GROUP BY 열에 종속되지 않은 경우에도 열을 반환합니다. 이로 인해 MySQL은 앞의 쿼리를 받아들입니다. 이 경우 서버는 각 그룹에서 임의의 값을 자유롭게 선택할 수 있으므로 동일하지 않으면 선택한 값이 불확실합니다. 이는 원하는 것이 아닐 수 있습니다. 또한 각 그룹의 값 선택에는 ORDER BY 절 –