2014-07-09 4 views
0

하나의 컬럼에서 가장 일반적인 값의 수를 찾고 싶습니다. 예를 들어, 내 표는 다음과 같습니다MySQL 컬럼에서 동일한 값의 가장 높은 수를 찾는 방법

id | item | color 
________________________________________________________ 
1 | APPLE | RED 
2 | PEAR | GREEN 
3 | APPLE | GREEN 
4 | ORANGE| ORANGE 
5 | APPLE | RED 
6 | APPLE | YELLOW 
7 | ORANGE| ORANGE 

나는 결과가 보여주고 싶은 : 4 'APPLE의 단 하나의'PEAR '두 개의'ORANGE의, 오직 최고가있다

There are 4 counts of APPLE 

때문에 카운트가 표시됩니다.

답변

2

당신은 단지 한 결과로 수, 항목에 의해 그룹 및 한계로 주문할 수있다 :

SELECT item, COUNT(item) as count 
FROM table 
GROUP BY item 
ORDER BY count DESC LIMIT 1; 
4

당신이 지정한 결과를 얻으려면, 당신은 가상 필드를 지정하고 가입 CONCAT()을 사용할 수 있습니다 함께이 같은 비트 :

SELECT 
    CONCAT('There are ', COUNT(item), ' counts of ', item) as your_result 
FROM yourtable 
GROUP BY item 
ORDER BY COUNT(item) DESC 
LIMIT 1 

결과 : APPLE

이 있습니다 4 카운트


참고 :이 질문에 PHP를 태그 한 이후

, 그것은 그 데이터베이스에 저장 정보를 기억하는 것이 좋습니다 아마, 그리고 PHP 코드/HTML은 해당 데이터를 발표 할 예정이다 사용자. 가능할 때마다 레이어를 분리하여 보관해야합니다. 즉 결과 내에서 이러한 서식을 지정하지 말고 MySQL에서 원시 데이터 (항목 이름 및 개수)를 반환 한 다음 PHP를 사용하여 제시해야합니다. 이 경우

, 당신은 여기에 other answers 중 하나를 사용하여 간단하게 출력 포맷 된 결과를 사용한다 PHP :

// your query, example: 
$result = $pdo->fetch(PDO::FETCH_ASSOC); 
echo 'There are ' . $result['count'] . ' counts of ' . $result['item']; 
관련 문제