Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa menggunakan COALESCE() dalam klausa WHERE secara optimal?

Anda dapat melakukan penghitungan dengan dua subkueri terpisah:

select coalesce(qa2.subject, qa.subject) as question_subject,
       qa.body,
       ( (select count(*)
          from viewed_items vi
          where qa.related = vi.question_id
         ) +
         (select count(*)
          from viewed_items vi
          where qa.related is null and qa.id = vi.question_id
         )
        ) as total_question_viewed
from questions_and_answers qa left join
     questions_and_answers qa2
     on qa.related = qa.id 
where body like ':entry';

Indeks dapat digunakan untuk setiap subquery, jadi secara keseluruhan harus lebih cepat. Omong-omong, Anda tidak perlu khawatir tentang NULL nilai, karena COUNT(*) dalam subquery yang berkorelasi selalu mengembalikan nilai. Jika tidak ada yang cocok, nilainya akan menjadi 0 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Datetime terbaru dari indeks mysql unik

  2. Dapatkan nilai sebelumnya setelah pembaruan - MySql

  3. Cara Menghubungkan Ke Server MySQL Setelah Menginstal XAMPP Di Mac OS

  4. Penghitung kenaikan MySQL SELECT

  5. MySQL:Kesalahan SQL:1140, SQLState:42000