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

Permintaan MySQL untuk mencari item dengan tag tertentu

jika Anda menginginkan item dengan salah satu dari dua tag tersebut, maka:

select distinct item_id, item_name 
from items_tags 
where tag_name in ('yellow', 'fruit'); 

jika Anda ingin item memiliki kedua tag, maka:

select item_id, item_name 
from items_tags 
where tag_name in ('yellow', 'fruit')
group by item_id, item_name
having count(*) = 2; 

berdasarkan komentar Anda

  select a.id, a.item 
    from items a, items_tags b, tags c 
   where a.id = b.item_id
     and b.tag_id = c.id
group by id, item
  having (group_concat(c.tag) like '%yellow%' 
         and  group_concat(c.tag) like '%fruit%')
      or group_concat(c.tag) = 'red';

Kueri ini memberikan id dan item dari tabel item. Ini memberikan item yang memiliki tag kuning dan buah. dan item hanya dengan tag merah.

jika Anda ingin mendapatkan item dengan dua tag dan hanya dua tag, gunakan ketentuan berikut dalam memiliki klausa

(group_concat(c.tag) like '%yellow%' 
and group_concat(c.tag) like '%fruit%'
and count(*) = 2) 
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendefinisikan Kueri Repositori JPA dengan Gabung?

  2. Koneksi soket Unix ke MySql dengan Java untuk menghindari overhead TCP/IP JDBC?

  3. Membuat kondisi OR secara dinamis dengan meneruskan array ke kueri di MySQL PHP

  4. Permintaan MySQL dengan SUM() tidak mengembalikan hasil yang diharapkan

  5. Perbarui daftar hal-hal tanpa menekan setiap entri