Mam banalny problem, którego nie potrafię rozwiązać od kilku dni, albo mam jakaś zaćmę bo wiem ze rozwiązanie powinno być proste a nie mogę na nie wpaść.
Załóżmy ze mam jakaś tebele o nazwie 'testowa'
wygląda ona tak:
cat_id | item
=========
3 | 2
-----------------
3 | 1
-----------------
5 | 2
-----------------
5 | 3
-----------------
8 | 2
-----------------
8 | 1
Wyszukiwarka ma znajdować id item'u który znajduje się tylko w kategoriach 3, 5 i 8.
próbowałem trochę sposobów najbardziej rozsądne to:
SELECT * FROM `testowa` WHERE `cat_id` IN(3,5,8) GROUP BY `cat_id`
zapytanie jest ok, bo zwraca to co bym chcial, ale jeśli damy:
SELECT * FROM `testowa` WHERE `cat_id` IN(3,5,111) GROUP BY `cat_id`
To również otrzymamy wynik, tylko 2 rekordy.
Najlepiej jakby wynikiem był 1 rekord z id item'u który występuje tylko w tych podanych kategoriach.
Gdyby to zadziałało to by było super
SELECT * FROM `testowa` WHERE (`cat_id` LIKE 3) AND (`cat_id` LIKE 5) AND (`cat_id` LIKE 8)
ale niestety nie wiadomo czemu zwraca wynik 0 rekordów.
Może ktoś mi podsunie inny pomysł lub rozwiązanie już?