Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Одним запросом с несколькими условиями
 
 автор: mehelson   (23.08.2007 в 04:33)   письмо автору
 
 

Здравствуйте !
Подскажите пожалуйста, можно ли все записать одним запросом, следуюее :

<?php
$query_a 
mysql_query("SELECT COUNT(name LIKE '%конкурс%' ) FROM table WHERE status = 'active'");
    if(!
$query_a) exit(mysql_error());
    
$konkurs_a mysql_result($query_a,0);

    
$query_prod mysql_query("SELECT COUNT(name LIKE '%конкурс%' ) FROM table WHERE status = 'prodlenie'");
    if(!
$query_prod) exit(mysql_error());
    
$konkurs_prod mysql_result($query_prod,0);

    
$query_p mysql_query("SELECT COUNT(name LIKE '%конкурс%' ) FROM table WHERE status = 'povtor'");
    if(!
$query_p) exit(mysql_error());
    
$konkurs_p mysql_result($query_p,0);

    
$query_prot mysql_query("SELECT COUNT(name LIKE '%конкурс%' ) FROM table WHERE status = 'protokol'");
    if(!
$query_prot) exit(mysql_error());
    
$konkurs_prot mysql_result($query_prot,0);

    
$query_z mysql_query("SELECT COUNT(name LIKE '%конкурс%' ) FROM table WHERE status = 'noactive'");
    if(!
$query_z) exit(mysql_error());
    
$konkurs_z mysql_result($query_z,0);

    
$query_o mysql_query("SELECT COUNT(name LIKE '%конкурс%' ) FROM table WHERE status = 'not'");
    if(!
$query_o) exit(mysql_error());
    
$konkurs_o mysql_result($query_o,0);
?>

Это сочинил для наглядности (я надеюсь)...
Нужно выбрать количество записей в "категории" - %конкурс% (их таких будет 5...), по каждому из условий.
т.е. в итоге нужно отобразить количество конкурсов в каждом статусе...(конкурсы активные - столько-то, конкурсы неактивные - столько-то и т.д.).

Спасибо!

   
 
 автор: cheops   (23.08.2007 в 11:22)   письмо автору
 
   для: mehelson   (23.08.2007 в 04:33)
 

Используйте конструкцию GROUP BY по name совместно с COUNT(*)

   
 
 автор: mehelson   (23.08.2007 в 15:59)   письмо автору
 
   для: cheops   (23.08.2007 в 11:22)
 


<?php
$quеry 
mysql_quеry("SЕLЕСТ stаtus, СОUNТ(stаtus) FRОМ tbl GRОUР ВY nаmе LIKЕ '%конкурс%'");
?>

А как привести результат к виду - активных столько-то, неактивных столько-то и т.д. ?

   
 
 автор: oradev   (24.08.2007 в 00:39)   письмо автору
 
   для: mehelson   (23.08.2007 в 15:59)
 


select status, count(status)
from tbl
where name LIKE '%конкурс%'
group by status;

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования