Saya ingin mendapatkan jumlah pesan yang belum dibaca dari database MySQL menggunakan operator SELECT SUM. Jadi, SQL saya adalah: SELECT sum(status_field = 'new') unreadMessagesCount FROM messages WHERE 'author_uid' = 'authorUID' ...

0
Artem 9 April 2021, 15:25

1 menjawab

Jawaban Terbaik

Ini mengembalikan NULL karena Anda membandingkan string, bukan kolom dengan:

WHERE 'author_uid' = 'authorUID'

Dan kedua string ini tidak sama. Jadi, semua baris disaring. Nilai NULL adalah karena Anda memiliki kueri agregasi. SUM() mengembalikan NULL bila tidak ada baris dalam kueri semacam itu.

Saya tidak yakin apa yang Anda niatkan. Mungkin:

WHERE author_uid = 'authorUID'

Namun, 'authorUID' sepertinya nilai yang aneh untuk uid. Anda perlu memberi nilai yang sesuai di sana. Jika itu adalah string, lampirkan dalam tanda kutip tunggal. Jika berupa angka, jangan gunakan tanda kutip tunggal.

5
Gordon Linoff 9 April 2021, 12:28