Ho impostato una function di ricerca per il mio database per cercare i nomi dei fratelli. Ho incontrato un problema in quanto i fratelli sono elencati in più di una colonna. Mi stavo chiedendo se è ansible utilizzare il WHERE con OR per esaminare 3 o più colonne in un database.
Questo è quello che ho adesso
SELECT * FROM movie WHERE $dropdown_1 LIKE '%$search%'"
Il dropdown_1
può essere composto da diverse cose, tra cui i fratelli, ma vorrei che quando i fratelli siano selezionati in dropdown_1
guarderà siblings_1
, siblings_2
, siblings_3
e siblings_4
per vedere se un nome corrisponde.
Probabilmente è il momento di considerare la normalizzazione del tuo database.
Per rispondere direttamente alla tua domanda, puoi utilizzare OR
per più corrispondenze
`siblings_1` LIKE '%search%' OR `siblings_2` LIKE '%search%' # etc...
In alternativa, come indicato da OMGPonnies nel commento seguente, l'utilizzo di UNION
è più veloce:
WHERE siblings_1 LIKE '%search%' UNION SELECT ... WHERE siblings_2 LIKE '%search%' # etc ...
Ma insisto, se puoi ancora aiutarlo, per ridisegnare il tuo database :).
Mettere i nomi delle colonne nelle variables definite dall'utente è una ctriggers idea, in quanto quindi sono in grado di cercare in qualsiasi punto della tabella.
Quello di cui hai probabilmente bisogno è più simile
SELECT * FROM movie WHERE `dropdown_column` LIKE '%$search%'" OR `sibling_column` LIKE '%$search%'" etc..