mysql: проблема условного утверждения, тогда

0

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

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

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

SELECT sum( amount ) AS balance FROM balance WHERE amount >= 100 AND userid=4
Теги:
conditional-statements

1 ответ

2
Лучший ответ

Он вернет 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
  • 0
    не имеет значения, возвращает ли он NULL или 0. Я выполнил запрос, но изменил 100 на 20, и он возвращает строки, как и ожидалось.
  • 0
    Я нашел проблему, я делаю сумму суммы, но затем я проверяю только индивидуальную сумму, если она больше или равна 100. Таким образом, я изменил where на следующее, и это, кажется, работает: WHERE userid = 4 GROUP BY userid, имеющий sum (сумма)> = 100
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню