Какова лучшая практика для подсчета равных значений в базе данных? - PullRequest
0 голосов
/ 16 июня 2009

У меня довольно большая база данных mysql, и я хотел бы посчитать все равные значения, чтобы объяснить себя лучше:

У меня есть поле страны, в котором есть значения нескольких стран (США, Великобритания, MEX и т. Д.), И я хочу получить количество стран без дубликатов (если у меня будет 100 США и 2 UK и 1000 MEX, результат будет быть 3).

Единственный способ, которым я мог придумать, это:

$i="0";
$query = "SELECT DISTINCT country FROM table"; 
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$i++;
}
echo $i;

Я действительно думаю, что есть лучшие способы для достижения этого, может быть, напрямую связаны с SQL-оператором?

Как всегда, спасибо за ваши добрые ответы.

Ответы [ 3 ]

8 голосов
/ 16 июня 2009

У вас в основном правильный оператор выбора, вам просто нужно, чтобы MySQL сделал подсчет за вас:

SELECT COUNT(DISTINCT country)
FROM table
1 голос
/ 16 июня 2009

ВЫБЕРИТЕ страну, СЧЕТ (страна) ИЗ таблицы ГРУППА ПО СТРАНЕ

0 голосов
/ 16 июня 2009
SELECT country, COUNT(*) AS count
FROM table
GROUP BY country
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...