mysql: проблема условного утверждения, тогда - PullRequest
0 голосов
/ 29 августа 2010

Когда я запускаю этот запрос, он работает

SELECT sum( amount ) AS balance FROM balance WHERE amount >= 100

, но когда я хочу отфильтровать идентификатор пользователя, он возвращает NULL

SELECT sum( amount ) AS balance FROM balance WHERE amount >= 100 AND userid=4

1 Ответ

2 голосов
/ 29 августа 2010

Будет возвращено значение NULL, если строк нет. Если вы хотите использовать ноль, используйте следующее:

SELECT IFNULL(SUM(amount), 0) AS balance
FROM balance
WHERE amount >= 100 AND userid = 4

Если вы считаете, что ответом должно быть что-то отличное от 0 или NULL, я предлагаю вам выполнить этот запрос, чтобы еще раз проверить, что хотя бы одна строка возвращена и данные верны:

SELECT * 
FROM balance
WHERE amount >= 100 AND userid = 4
...