2015-07-01 3 views
0

У меня есть этот запрос:SQL/PHP - Count результаты и показать их в соответствии с предложением HAVING

$stmt = $dbh->prepare("SELECT DISTINCT country_code,country_name FROM users WHERE country_code!='NA' AND country_name!='NA'"); 
$stmt->execute(); 
$rows = $stmt->fetchAll(); 

Какой отчетливо выбрать какую-либо информацию из моей базы данных.

я потом цикл данных в цикле Еогеасп:

foreach ($rows as $row){ 
//Do something 
} 

Хотя, я хочу, чтобы иметь возможность использовать только результат/данные, если есть более чем 5 результатов в оригинале запрос.

Пример:

Если country_code и country_name со значениями CA и canada присутствует более чем в 5 раз.

+0

Любопытный вы спрашиваете, если вы хотите, чтобы данные, если конкретные значения найдены более пяти раз, или если вы хотите, чтобы данные, если общая сумма возвращается в более чем 5? –

+0

Конкретные значения. – oliverbj

+0

у вас есть упоминание о группе и иметь. вы могли бы сделать что-то вроде этого 'select country_code, country_name из группы пользователей по country_code со счетом (country_code)> = 5' http://sqlfiddle.com/#!9/ceedf/1/0 – thanyaj

ответ

0

Вы можете использовать группу и получить конкретный результат. Вы можете использовать функцию count(), чтобы подсчитать количество строк группы по определенному столбцу. Вы также можете добавить выражение, если вы хотите, чтобы в качестве примера ниже был указан country_code = 'CA'.

select country_code, country_name from user 
group by country_code 
having country_code='CA' and count(country_code) >=5 

вот пример http://sqlfiddle.com/#!9/b62530/1

+0

Как насчет отдельных? – oliverbj

+0

группа, давая вам отличный способ. С отличием вам нужно подсчитать строку после запроса. Сгруппируйте группу, она группирует один и тот же country_code, чтобы вернуть только 1 строку этого кода страны. Таким образом, это отличный country_code. Если не нужны другие столбцы, кроме country_code. Тогда запрос будет другим. – thanyaj

Смежные вопросы