사용자가 WHERE 절에서 COUNT(*) 함수를 사용하여 MySQL에서 데이터를 필터링하려고 시도하는 동안 문제가 발생했습니다. WHERE 절. 그들은 중첩된 SELECT 문을 사용하지 않고 이 작업을 수행할 수 있는 효율적인 방법을 모색했습니다. 이는 상당한 리소스를 소비할 수 있기 때문입니다.
사용자는 원하는 결과를 설명하기 위해 다음 의사 코드를 제시했습니다.
SELECT DISTINCT gid FROM `gd` WHERE COUNT(*) > 10 ORDER BY lastupdated DESC
이 접근 방식의 문제점은 MySQL이 WHERE 절에서 COUNT(*)와 같은 집계 함수를 지원하지 않는다는 것입니다. 이 제한을 피하기 위해 사용자는 중첩된 SELECT를 사용하여 각 고유 gid에 대한 행 수를 계산한 다음 그에 따라 결과를 필터링하는 가능성을 탐색했습니다. 그러나 이 방법은 비효율적이고 리소스 집약적인 것으로 간주되었습니다.
다행히도 MySQL은 GROUP BY 및 HAVING 절을 사용하여 보다 최적화된 솔루션을 제공합니다.
SELECT gid FROM `gd` GROUP BY gid HAVING COUNT(*) > 10 ORDER BY lastupdated DESC
이 쿼리는 다음 단계를 수행합니다.
GROUP BY 및 HAVING 절을 사용하면 중첩된 SELECT 문을 사용하지 않고도 원하는 결과를 효과적으로 얻을 수 있어 성능과 효율성이 향상됩니다.
위 내용은 Nested SELECT를 사용하지 않고 MySQL에서 개수를 기준으로 데이터를 필터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!