2015-06-11 5 views
1

У меня есть эта таблица:Как считать непустые cols? MySQL

id col1 col2 col3 
1 '' '' bla 
2 '' bla bla 
3 bla '' '' 

Я хочу построить запрос, который будет Retun сколько смещ_по_столбцев не пустуют для каждого идентификатора.

, так что результат будет:

id sum 
1 1 
2 2 
3 1 

Как сделать это?

ответ

2
select id, ((col1 != '') + (col2 != '') + (col3 != '')) as non_empty_count 
from table; 

использует трюк, где булева истина = 1 и ложь = 0 - так что для каждого столбца не пустое значение объявлений 1 сосчитать. Можно увидеть в действии на http://sqlfiddle.com/#!9/751df2/5

+0

Мне нравится этот ответ, я не знал, что логическое значение в Mysql равно 0/1 – 54l3d

+1

@ 54l3d да, приятно для «sum (is_active = 1) как active_count» тоже – jkavalik

Смежные вопросы