Prova något sånt här:
SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"
Du kanske vill se SQL-dokument för ytterligare information om strängoperatorer och reguljära uttryck.
Redigera:Det kan finnas vissa problem med NULL-fält, så ifall du kanske vill använda IFNULL(field_i, '')
istället för bara field_i
Skiftlägeskänslighet :Du kan använda skiftlägesokänslig sortering eller något i stil med detta:
... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")
Sök bara i alla fält :Jag tror att det inte finns något sätt att göra en SQL-fråga som kommer att söka igenom alla fält utan att uttryckligen deklarera fält att söka i. Anledningen är att det finns en teori om relationsdatabaser och strikta regler för att manipulera relationsdata (något som relationell algebra eller codd algebra; det här är vad SQL kommer ifrån), och teorin tillåter inte saker som "sök bara i alla fält". Självklart beror det faktiska beteendet på säljarens konkreta insikt. Men i vanliga fall är det inte möjligt. För att vara säker, markera SELECT
operatorsyntax (WHERE
avsnitt, för att vara exakt).