Как использовать счет, если в MySQL - PullRequest
2 голосов
/ 07 мая 2019

Мой SQL-запрос возвращает Синтаксическая ошибка рядом с '== 1

Мой запрос

SELECT COUNT( IF ( application_type== 1 ) ) as total from table_1

Ответы [ 4 ]

5 голосов
/ 07 мая 2019

вариант использования, когда

SELECT COUNT(case when application_type=1 then 1 end) as total from table_1

ИЛИ

SELECT COUNT(*) as total from table_1
where application_type=1 

ИЛИ

SELECT count(if(application_type=1, 1, NULL)) as total from table_1
2 голосов
/ 07 мая 2019

Несколько проблем с вашим синтаксисом. Это работает:

SELECT COUNT(*) as total from table_1 WHERE application_type = 1;
0 голосов
/ 07 мая 2019

Не используйте if() или case вообще. MySQL удобно обрабатывает логические значения как целые числа, поэтому вы можете просто сделать:

SELECT SUM( application_type = 1 ) as total 
FROM table_1;

Конечно, если это все, что вам нужно, используйте COUNT(*) и переместите условие в предложение WHERE.

0 голосов
/ 07 мая 2019

Ваше условие IF (application_type == 1) фактически возвращает либо TRUE, либо FALSE, равное 1 ИЛИ 0. Теперь, если вы примените COUNT к столбцу, содержащему 1 ИЛИ 0, он всегда вернет вам общее количество ROW таблицы , Так что вам нужно настроить свой запрос. В любом случае, я думаю, что использование SUM вместо COUNT послужит вашей цели -

SELECT SUM(IF( application_type = 1)) AS total from table_1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...