sql >> Databasteknik >  >> RDS >> Mysql

MySQL - välj alla objekt med flera hashtags

väl du känner till din lista, så det är en enkel sträng. och du vet din räkning. dessa kan stoppas in i ett mysql Prepared Statement och avrättades.

Men nedanför är det med listan och räkningen inlagd bara för demoändamål.

create table items
(   id int not null
);

create table tags
(   id int not null,
    name varchar(50)
);

create table item_tags
(   iid int not null,
    tid int not null
);

insert items (id) values (1),(2),(3),(4);
insert tags(id,name) values (1,'cat'),(2,'animal'),(3,'has nose');
-- note, everything has a nose so far:
insert item_tags (iid,tid) values (1,1),(1,3),(2,1),(2,3),(3,2),(3,3),(4,1),(4,2),(4,3);

select i.id,count(i.id)
from items i
join item_tags junc
on junc.iid=i.id
join tags t
on t.id=junc.tid and t.name in ('cat','animal')
group by i.id
having count(i.id)=2

-- only item 4 has both cat and animal (note nose is irrelevant)


  1. Använder välj till lokal variabel och förberedd uttalande i mysql

  2. Hur väljer man bara ett underordnat tabellobjekt för varje överordnad post?

  3. Hur man lagrar urvalsresultat till variabel i Oracle-proceduren

  4. Hur släpper man alla tabeller från databasen med manage.py CLI i Django?