MySQL 에서 지정 한 필드 정 보 를 다시 표시 합 니 다.
1996 단어 mysql무 거 운 것 을 제거 하 다
?
1
select distinct name, sorce from table
그 결과 제거 가 효과 가 없 는 것 으로 나 타 났 습 니 다.MYSQL 은 sorce 와 name 이 동시에 중복 되 어야 제거 할 수 있다 고 생각 하기 때 문 입 니 다.최종 해결 방법 은 다음 과 같다.
?
1
select *,
count
(distinct name) from table group by name
SQL 문장 에 limit,orderby 등 조건 이 있다 면 group by 뒤에 두 어야 합 니 다.이렇게 하면 무 거 운 것 도 제거 하고 더 많은 필드 정 보 를 출력 할 수 있 는 목적 을 달성 할 수 있다.
SELECT 문 구 는 특정한 필드 의 중복 정 보 를 제거 합 니 다.예 를 들 어: 표 이름:table id uid username message dateline 1 6 a 111 1284240714(타임스탬프) 2 6 a 222 1268840565 3 8 b 444 1266724527 4 9 c 555 1266723391 실행 문(username 필드 에서 중복 정 보 를 제거 하고 시간 에 따라 정렬):
SELECT *
FROM table a INNER JOIN ( SELECT max( dateline ) AS dateline
FROM table GROUP BY uid ) b ON a.dateline = b.dateline
GROUP BY id ORDER BY a.dateline DESC
결과: id uid username message dateline 1 6 a 111 1284240714(타임스탬프) 3 8 b 444 1266724527 4 9 c 555 1266723391 이 문 구 는 최신 기록 정 보 를 표시 하 는 데 사 용 됩 니 다.한 지역 에서 특정한 정보(예 를 들 어 사용자)가 동시에 여러 번(한 번 이상)나타 나 는 것 을 허용 하지 않 습 니 다. 후기:효율 문제 이 문 구 를 사용 하기 시작 했다.
select * from table where dateline IN ( select max(dateline) from table GROUP BY uid ) ORDER BY dateline DESC
IN:처리 데이터 의 양 이 비교적 많 을 때 비효 율 적 이 라 고 할 수 있 습 니 다.그래서 내 연 으로 최적화 하여 계산 해 보면 6 배가 넘 습 니 다. 계속 효율 적 으로 색인 을 추가 합 니 다~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.