Психанул и снес свои ответы не отмечающим решения…
На обычных полях вроде работает без проблем.
select count(*) cnt, hello, name from (
select 'привет' hello, null name
union all
select 'привет', 'иван'
union all
select 'привет', 'иван'
) tab
group by
hello, name;
Мне странно, что поля BLOB вообще могут участвовать в group by.
Max Payne, а MySQL различает пустую строку и пустое поле? Плюс, не может быть так, что ваши command_text состоят из пробелов? Тут должна быть или концептуальная, или очень тупая ошибка.
Vapaamies, в выборке вообще нет результатов, если в command_text отсутствуют буквы. Нелогично. Пробелы вряд ли есть потому, что в коде перед добавлением в базу данных command_text обрабатывается strip-ами.
select
command,
command_text
from your_table
where length(command_text) <> 0
group by command, command_text
union
select
command,
command_text
from your_table
where length(command_text) = 0
Я привёл оба поля к типу varchar, однако в выборку так же не попадают варианты с command_text == "". На сколько я понял, ifnull заменяет значения Null на "empty", однако мне не нужно "empty" в выборке. Есть другие варианты, или придётся обрабатывать это уже в коде программы?