Ich habe eine Abfrage wie folgt aus:Warum SUM() gibt NULL zurück, wenn keine Zeile ausgewählt ist?
SELECT sum(date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 day))) as num_day
FROM mytable
WHERE user_id = :id
SUM()
Rückkehr NULL
wenn jetzt Zeile ausgewählt ist. Ich meine, wenn :id
nicht in der mytable
existiert, ist das Ergebnis num_day
NULL
. Basierend auf meinen Bedürfnissen sollte es NULL
überhaupt nicht sein. Es sollte 0
oder mehr sein.
Wie auch immer, wie kann ich die Anzahl der wahrheit einer Bedingung berechnen? Hier ist die Bedingung:
date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 day))
- Weil * die Summe einer leeren Menge * nicht definiert und/oder unsinnig ist. – deceze
@deceze Ok, was ist der beste Weg, in diesem Fall '0' anstelle von' null' zu erhalten? –