Probeer zoiets als dit:
SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"
Misschien wilt u SQL-documenten bekijken voor aanvullende informatie over tekenreeksoperators en reguliere expressies.
Bewerken:er kunnen wat problemen zijn met NULL-velden, dus voor het geval u IFNULL(field_i, '')
wilt gebruiken in plaats van alleen field_i
Hoofdlettergevoeligheid :U kunt hoofdletterongevoelige sortering of iets dergelijks gebruiken:
... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")
Zoek gewoon in alle velden :Ik geloof dat er geen manier is om een SQL-query te maken die door alle velden zal zoeken zonder expliciet het veld om in te zoeken aan te geven. De reden is dat er een theorie is van relationele databases en strikte regels voor het manipuleren van relationele gegevens (zoiets als relationele algebra of codd algebra; dit is waar SQL vandaan komt), en de theorie staat dingen zoals "zoek gewoon alle velden" niet toe. Natuurlijk hangt het daadwerkelijke gedrag af van de concrete realisatie van de leverancier. Maar in het gewone geval is het niet mogelijk. Controleer voor de zekerheid SELECT
operatorsyntaxis (WHERE
sectie, om precies te zijn).