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

MEMILIH dengan beberapa kondisi WHERE pada kolom yang sama

Anda dapat menggunakan GROUP BY dan HAVING COUNT(*) = _ :

SELECT contact_id
FROM your_table
WHERE flag IN ('Volunteer', 'Uploaded', ...)
GROUP BY contact_id
HAVING COUNT(*) = 2 -- // must match number in the WHERE flag IN (...) list

(dengan asumsi contact_id, flag unik).

Atau gunakan gabungan:

SELECT T1.contact_id
FROM your_table T1
JOIN your_table T2 ON T1.contact_id = T2.contact_id AND T2.flag = 'Uploaded'
-- // more joins if necessary
WHERE T1.flag = 'Volunteer'

Jika daftar bendera sangat panjang dan ada banyak kecocokan, yang pertama mungkin lebih cepat. Jika daftar bendera pendek dan ada beberapa kecocokan, Anda mungkin akan menemukan bahwa yang kedua lebih cepat. Jika kinerja menjadi masalah, coba uji keduanya pada data Anda untuk melihat mana yang bekerja paling baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memilih Baris N Teratas Per Grup di MySQL

  2. MySQL Master Untuk Menguasai Replikasi

  3. Buat Cadangan Fisik dari MariaDB atau Database MySQL Anda

  4. MySQL mengonversi string tanggal ke cap waktu Unix

  5. Bagaimana cara memasukkan karakter utf-8 mb4 (emoji di ios5) di mysql?