Ho una casella di ricerca che mi piacerebbe avere la ricerca di 6 colonne nel mio database scuole quando viene effettuato un input. Finora la casella di ricerca cerca solo il campo del nome e restituisce una corrispondenza per gli input esatti o parziali.ricerca di più colonne con una o più parole chiave utilizzando sql
Vorrei cercare una città specifica e visualizzare tutti i risultati dal nome E colonne della città (anziché solo la colonna del nome) e così via.
Dire che volevo cercare con un codice di avviamento postale, vorrei che le inserzioni fossero tutte le scuole in quel codice di avviamento postale. E infine se inserisco 2 parole (ad es. Penn Philadelphia), vorrei che tutte le scuole Penn mostrassero solo la colonna nome E la colonna cittadina. (non solo tutti i pennini nel nome o in ogni scuola di Philadelphia) e così via. Queste potrebbero essere domande elementari sull'argomento, ma ho cercato giorni senza successo. Forse un utilizzo migliore dei caratteri jolly e le clausole "AND" "OR" potrebbero avvantaggiarmi.
Qualcuno può aiutarmi a strutturare una query sql per realizzare questo?
questo è quello che ho finora:
SELECT * FROM schools
WHERE (name='%name%' OR address='%name%' OR city='%name%'OR zip='%name%')
è possibile utilizzare approcci multipli: ad esempio, di avere "penn" e "Philadelphia" si può fare: 'SELECT * FROM scuole dove name = 'penn' E città = 'philadelphia' ; 'puoi combinare insieme alcune condizioni. Un altro approccio: 'SELECT * FROM s1 scuola, s2 scuola ISCRIVITI ON s1.name = s2.name WHERE s1.name = 'penn' E s1.city = 'philadelphia';' qui si può anche utilizzare più join non vanno con esso, ma avere un buon indice aiuta quest'ultimo robusto – Hamed
C'è anche un altro approccio che è possibile utilizzare alcuni SELECT nidificati (non consigliato), come si fa: 'SELECT * FROM schools WHERE (SELECT * FROM schools WHERE name = ' penn ') AS s1 AND city =' philadelphia '; '. Non andare troppo in profondità su questo, perché diventerebbe cattivo. Scegli quello che si adatta meglio – Hamed
@RyanVincent beh non è proprio una risposta corretta più come alcuni suggerimenti – Hamed