Prova qualcosa del genere:
SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"
Potresti voler vedere i documenti SQL per ulteriori informazioni sugli operatori di stringa e sulle espressioni regolari.
Modifica:potrebbero esserci dei problemi con i campi NULL, quindi nel caso tu voglia usare IFNULL(field_i, '')
anziché solo field_i
Maiuscole/minuscole :puoi utilizzare regole di confronto senza distinzione tra maiuscole e minuscole o qualcosa del genere:
... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")
Cerca in tutti i campi :Credo che non ci sia modo di creare una query SQL che cercherà in tutti i campi senza dichiarare esplicitamente il campo in cui cercare. Il motivo è che esiste una teoria dei database relazionali e regole rigide per manipolare i dati relazionali (qualcosa come l'algebra relazionale o codd algebra; ecco da cosa proviene SQL) e la teoria non consente cose come "cerca solo in tutti i campi". Naturalmente il comportamento effettivo dipende dalla realizzazione concreta del venditore. Ma nel caso comune non è possibile. Per essere sicuro, controlla SELECT
sintassi dell'operatore (WHERE
sezione, per la precisione).