MySQL, подсчитайте количество заполненных полей в таблице

MySQL (таблица):

+----+------+ | id | text | +----+------+ | 1 | | +----+------+ | 2 | blah | +----+------+ | 3 | | +----+------+ | 4 | blah | +----+------+ | 5 | blah | +----+------+ 

PHP:

 $a = mysql_query("SELECT COUNT(*) AS count1 FROM `table`"); $b = mysql_fetch_assoc($a); echo $b['count1']; 

Вывод:

 5 

Тем не менее, я также хочу подсчитать заполненные текстовые поля – в том же запросе, если это возможно.

Результат:

 5 in total 3 with filled text fields 

 SELECT COUNT(*) AS `total`, SUM(IF(`text` <> "",1,0)) AS `non_empty` FROM `table` 

Это может быть выполнено довольно хорошо с подзапросами.

 SELECT COUNT(id) AS id, COUNT(SELECT text FROM 'table' WHERE text IS NOT NULL) AS t FROM 'table' 

Примечание для себя: начинайте корректуру своей работы перед ее отправкой.