Mam bazę danych w której mam kolumny z cyframi (cyfra1, cyfra2,cyfra3,...,cyfra12).
Jakie napisać zapytanie SQL w którym podam kilka cyfr (3,4,5 lub 6) i jeżeli w danym wierszu znajdzie podane cyfry to wypisze wiersz...
Dla 6 i 5 cyfr napisałem zapytanie ale jest ono bardzo długie i dla 4 i 3 cyfr już nie potrafie;]
Wersja dla 6
SELECT * FROM `xx` WHERE (cyfra1 = 1 OR cyfra2 = 1 OR cyfra3 = 1 OR ... OR cyfra12 = 1) AND (cyfra1 = 2 OR cyfra2 =21 OR cyfra3 = 2 OR ... OR cyfra12 = 2) AND (cyfra1 = 3 OR cyfra2 = 3 OR cyfra3 = 3 OR ... OR cyfra12 = 3) AND (cyfra1 = 4 OR cyfra2 = 4 OR cyfra3 = 4 OR ... OR cyfra12 = 4) AND (cyfra1 = 5 OR cyfra2 = 5 OR cyfra3 = 5 OR ... OR cyfra12 = 5) AND (cyfra1 = 6 OR cyfra2 = 6 OR cyfra3 = 6 OR ... OR cyfra12 = 6)
To zapytanie szuka czy są wiersze które zawierają liczy 1,2,3,4,5,6...
Dla 5 liczb zapytanie jest kilka razy dłuższe bo wchodzą kombinacje:/
O 4 i 3 liczbach nawet nie wspomnę...
Jest jakiś inny sposób na zrobienie zapytanie, które będzie działać i będzie krótsze?
Z góry dzięki!
Pozdrawiam