grinat
10.03.2009 - 20:52
Как подсчитать кол.-во полей равных определённому значению в бд mysql.
Есть таблица(table), в ней есть поле(category),а в этом поле много рядов с разными значениями. Нужно найти ряды с одинаковым значением и подсчитать их количество.
Этот код предполагаю использовать для доски объявлений, с его помощью подсчитывается кол.-во объявлений в категории, вот так:
Животные[1]
Электроника[12]
Для того чтобы минимизоровать кол.-во запросов к бд, я подумал что нужно выполнить запрос $zapros=mysql_fetch_array(mysql_query("SELECT category FROM `table`")), а затем после вывода названия категории выполнять цикл
PHP |
>Электроника</a>[<?php while ($row=$zapros){ if($row['category']=50){ $i=$i+1; } } echo $i; |
где сравнивается значение ряда с нужным(в данном случае 50) и если результат положителен то счётки кол.-ва объявлений увеличивается на еденицу.
Подскажите пожалуйста как правильно написать код наподобие такого, чтобы он выводил кол.-во объявлений в определённой категории, а не общее кол.-во объявлений как происходит сейчас. Буду очень благодарен за помощь.
Спустя 2 минуты, 41 секунда (10.03.2009 - 19:55) waldicom написал(а):
SQL |
select count(BLABLA) from table where BLUBLU? |
Спустя 15 минут, 55 секунд (10.03.2009 - 20:11) grinat написал(а):
Цитата (waldicom @ 10.03.2009 - 16:55) |
SQL | select count(BLABLA) from table where BLUBLU? |
|
SELECT count( * ) FROM table WHERE category =50, подходит, спасибо, но если запросов такого рода будет больше 100 как это скажется на производительности?
Спустя 1 час, 57 минут, 18 секунд (10.03.2009 - 22:08) kirik написал(а):
grinat, а зачем их больше 100? Один раз сделал - в кэш, потом при надобности обновляешь.
ЗЫ. На сколько я помню, COUNT(*) работает быстро, если не стоит никаких условий.