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

MySQL Multiple Where Clause

Saya pikir Anda mengejar ini:

SELECT image_id
FROM list
WHERE (style_id, style_value) IN ((24,'red'),(25,'big'),(27,'round'))
GROUP BY image_id
HAVING count(distinct style_id, style_value)=3

Anda tidak dapat menggunakan AND, karena nilainya tidak boleh 24 red dan 25 big dan 27 round pada saat yang sama di baris yang sama, tetapi Anda perlu memeriksa keberadaan style_id, style_value dalam beberapa baris, di bawah image_id yang sama .

Dalam kueri ini saya menggunakan IN (dalam contoh khusus ini, setara dengan OR), dan saya menghitung baris berbeda yang cocok. Jika 3 baris berbeda cocok, itu berarti semua 3 atribut ada untuk image_id itu , dan kueri saya akan mengembalikannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. generator mybatis Pola nama kolom tidak boleh NULL atau kosong

  2. Pelanggaran batasan integritas:1452 Tidak dapat menambah atau memperbarui baris anak:

  3. Bagaimana cara menanyakan grafik/data hierarkis di mysql

  4. Praktik terbaik dengan data historis di database MySQL

  5. Apakah ada praktik terbaik/cara yang koheren untuk memperbarui bidang database yang berisi penyimpanan nilai kunci hash?