Wątek przeniesiony 2021-06-09 11:48 z PHP przez cerrato.

wszystkie wartości w IN() jako całosc

0

tabela.jpg

Mam taką tabelę. Wybieram pewne wiersze zapytaniem

SELECT FROM parametry_dodatkowe_podkat WHERE nazwa IN('niebieski','zielony','Euro')

i tutaj wszystko jest jasne, dostaję wszystkie wiersze, które wpisane są w IN. Ale jak zrobić aby w przypadku kiedy choćby jedna z wartości w IN nie istnieje w kolumnie nazwa to wtedy Mysql zwróci 0 wierszy ? Czyli jeśli zapytanie wyglądało by

SELECT FROM parametry_dodatkowe_podkat WHERE nazwa IN('niebieski','zielony','costam')

to wtedy 0 wierszy.

0

Jak masz takie kategorie wpisane z palca (co trochę dziwne) to zawsze możesz sprawdzić czy z tych Twoich kategorii są one w tej kolumnie nazwa, robiąc subquery albo jako AND o ile nie będziesz przepisywał tego całego siana, tylko zrobisz sobie z tego parametr :)

5
select * from ( select  count(*) as c from  (SELECT nazwa  as c FROM parametry_dodatkowe_podkat WHERE nazwa IN('niebieski','zielony','costam') group by nazwa ) as t )  as t2 where t2.c = 3

Grupowanie jest, bo nie wiem, czy takie wpisy mogą się powtórzyć. 3 to liczba nazw, o jakie pytasz.
EDIT: Nie można użyć count w where dlatego trzeba zrobić dwa stopnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1