Нет. Это неправильное изображение. Вы не можете суммировать строковое значение. MySQL преобразует его в число. Поскольку 'Correct'
он начинается с буквы, запрос всегда будет возвращать 0.
Я думаю, что вы собираетесь:
SELECT SUM(IF(A=1 and B=2, 1, 0)) as Correct
FROM table
Обратите внимание, что это избавляется от внешнего ifnull()
. Я бы также предложил использовать COALESCE()
, а не IF()
, потому что это стандартная функциональность ANSI. Однако это условие не требуется.
Запрос может быть дополнительно упрощен. В самом деле, лучший способ, чтобы написать этот запрос является:
SELECT COUNT(*)
FROM table
WHERE A = 1 and B = 2;
В общем, лучше писать запросы с условиями в пункте WHERE
, а не в условных операторах (если это возможно). Это уменьшает количество строк, которые обрабатывает остальная часть запроса.
Спасибо за понимание. – NewBIe