|
|
|
| есть таблица в которой есть поле status, которое принимает два значения new и read.
мне необходимо (желательно) одним запросом посчитать сколько полей со значением new и read в отдельности. | |
|
|
|
|
|
|
|
для: Crux
(30.06.2006 в 18:23)
| | Поле - одно.
А число строк можно определить, сгруппировав результат по этому полю.
SELECT status, count(status) as num
FROM tab
GROUP BY status;
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.06.2006 в 18:33)
| | нет, я о другом.
поле естественно не одно, но это не имеет значение.
поле status может принимать два значения,
мне необходимо подсчитать сколько полей с одним и другим значением.
двумя запросами это делается легко
//один запрос
$query_new ="SELECT count(status) as status_new FROM tbl WHERE status=new"
//второй запрос
$query_read="SELECT count(status) as status_read FROM tbl WHERE status=read"
|
а хочется одним запросом:( | |
|
|
|
|
|
|
|
для: Crux
(30.06.2006 в 21:07)
| | Я и показал одним запросом.
Вот Ваш вариант:
<?
$sql="SELECT count(status) as status_read FROM tbl WHERE status=new";
$res = mysql_query($sql) or die("Error in $sql". mysql_error());
$new = mysql_result($res, 0);
$sql="SELECT count(status) as status_read FROM tbl WHERE status=read";
$res = mysql_query($sql) or die("Error in $sql". mysql_error());
$read = mysql_result($res, 0);
?>
|
Вот мой вариант.
Запрос здесь один, и вернет он максимум две строки. Если у Вас всего два разных значения.
<?
$sql="SELECT status, count(status) as num FROM tbl GROUP BY status";
$res = mysql_query($sql) or die("Error in $sql". mysql_error());
$new = $read = 0;
while($row = mysql_fetch_assoc($res))
if(($status = $row['status']) != '')
$$status = $row[$num];
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.06.2006 в 21:57)
| | бл.. однако я туплю.
спасибо | |
|
|
|