Мне нужен запрос, который группирует результаты вместе, если значение job_num = 0, но мне не удалось выяснить, как это сделать.MySQL GROUP, если значение равно 0
Это мой запрос, как он стоит (и не работает, я получаю ошибку SQL) ...
SELECT SQL_CALC_FOUND_ROWS * FROM calls
WHERE parent_id = '$term' GROUP BY IF (job_num != 0)
ORDER BY date_start DESC LIMIT $page_position, $item_per_page
Я попытался заменить job_num != 0
с job_num IS NOT NULL
и получить тот же результат.
Остальная часть запроса работает отлично, пока я не попытался исключить job_num != 0
Это упрощенная версия таблицы
id | call_ref | job_num
_______________________
1 | 123445 | 2389
_______________________
2 | 342537 | 0
_______________________
3 | 876483 | 2389
_______________________
4 | 644686 | 5643
_______________________
5 | 654532 | 0
Я хотел бы сгруппировать строки, где job_num! = 0, но Я все еще хочу отображать строки, где job_num = 0 просто не сгруппированы. Call_ref не уникален, и в таблице есть еще 31 столбца, в которых мне нужны значения.
Используя вышеприведенные примеры строк с идентификаторами 1 и 3 будут сгруппированы, а 2,4 и 5 будут по-прежнему возвращать результаты, но не сгруппированы.
Результаты, которые я хотел бы ...
1 и 3 сгруппированы (потому что job_nums одинаковы, но! = 0) 2, 4, 5 не сгруппированных
Предоставить примеры данных и желаемых результатов. Просто нечувствительно использовать 'select *' с 'group by'. –
Почему бы не поставить job_num! = 0 в where clause? – McNets
@mcNets, потому что в идеале я хотел бы показывать результаты с job_num!= 0, мне просто не нужны результаты с этим значением, сгруппированным вместе – tatty27