집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 DISTINCT를 사용하여 모든 열을 선택하는 방법은 무엇입니까?
MySQL: 여러 열 선택을 위한 DISTINCT 이해
MySQL 테이블에서 중복 행을 처리할 때 DISTINCT 키워드를 사용하여 고유한 항목을 검색할 수 있습니다. 하지만 여러 열을 선택할 때 제한이 있을 수도 있습니다. 이 문서에서는 중복 행에 대한 최신 항목을 선택하는 솔루션과 함께 DISTINCT를 사용하는 동안 모든 필드를 검색하는 문제를 다룹니다.
다중 열에 대한 DISTINCT의 제한 사항
DISTINCT는 특정 열에만 적용되는 함수가 아닙니다. 대신 선택 목록의 모든 열에 영향을 미치는 쿼리 수정자입니다. 모든 열의 값이 동일한 중복 행을 제거합니다.
DISTINCT
의 올바른 구문 DISTINCT는 SELECT 바로 뒤에 나타나야 합니다( 다른 쿼리 수정자(예: SQL_CALC_FOUND_ROWS) 쿼리 수정자 뒤에는 열 이름이 나열되어야 합니다.
예:
<code class="sql">SELECT DISTINCT foo, ticket_id FROM table...</code>
이 쿼리는 ticket_id와 foo에서 각각의 고유한 값 쌍에 대한 행을 출력합니다.
모든 열 선택 솔루션
중복 제거를 위해 모든 열이 동일해야 하기 때문에 모든 필드를 선택하고 DISTINCT를 사용할 수는 없습니다. 그러나 중복 행에 대한 최신 항목을 선택하는 데 사용할 수 있는 해결 방법이 있습니다.
<code class="sql">SELECT t1.* FROM table AS t1 JOIN ( SELECT ticket_id, MAX(row_id) AS max_id FROM table GROUP BY ticket_id ) AS t2 ON t1.ticket_id = t2.ticket_id AND t1.row_id = t2.max_id</code>
이 쿼리는 하위 쿼리를 사용하여 각 ticket_id에 대한 최대 row_id를 찾은 다음 기본 테이블을 하위 쿼리와 조인합니다. 각 ticket_id에 대한 최신 행을 선택합니다.
위 내용은 MySQL에서 DISTINCT를 사용하여 모든 열을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!