Mam tabelę, w której umieszczam różne warianty i użytkownik przesyła warianty przez formularz i chciałbym sprawdzić czy faktycznie one istnieją w systemie.
Tabela ma mniej więcej taką strukturę: id | id_opcji | produkt_id | kod_bezpieczeństwa | Użytkownik wysyła nam parametry "id_opcji"
np. 14, 58, 200 i muszę sprawdzić czy istnieją takie warianty, które mają takie same KODY BEZPIECZEŃSTWA
Przykładowe wpisy:
id | id_opcji | produkt_id | kod_bezpieczenstwa | 1 | 14 | MASŁO | ag8a8s 2 | 58 | MASŁO | ag8a8s 3 | 591 | JOGURT | s8sa8g 4 | 200 | MASŁO | ag8a8s
Teraz myślę nad sformowaniem zapytania, które zwróci mi kod_bezpieczeństwa dla kombinacji 14,58,200 - bądź FALSE jeśli kombinacje nie istnieją
bo nie posiadają takiego samego kodu_bezpieczeństwa
Próbowałem z zapytaniem w postaci:
SELECT count(kod_bezpieczenstwa) AS licz FROM table1 WHERE id_opcji IN(14,58,200) AND product_id = 'MASŁO' GROUP BY kod_bezpieczenstwa LIMIT 1;
ale parametr "IN" nie spełnia swojej funkcji bo nie zadziała on jak bramka "AND" - że te 3 parametry muszą być dla funkcji "IN" wystarczy, że znajdzie w tabeli 14, 58 i już zwróci mi pozytywny wynik.
UNION również nie sprawdza się do końca, ponieważ zwraca również kombinacje z innym "kodem_bezpieczeństwa"
(SELECT kod_bezpieczenstwa FROM table1 WHERE id_opcji = 14 AND product_id = 'MASŁO') UNION (SELECT kod_bezpieczenstwa FROM table1 WHERE id_opcji = 58 AND product_id = 'MASŁO') UNION (SELECT kod_bezpieczenstwa FROM table1 WHERE id_opcji = 200 AND product_id = 'MASŁO')