Prøv noget som dette:
SELECT * FROM clients WHERE CONCAT(field1, '', field2, '', fieldn) LIKE "%Mary%"
Du ønsker måske at se SQL-dokumenter for yderligere oplysninger om strengoperatorer og regulære udtryk.
Rediger:Der kan være nogle problemer med NULL-felter, så bare hvis du måske vil bruge IFNULL(field_i, '')
i stedet for blot field_i
Stor og store bogstaver :Du kan bruge store og små bogstaver i sortering eller sådan noget:
... WHERE LOWER(CONCAT(...)) LIKE LOWER("%Mary%")
Søg bare i alle felter :Jeg mener, at der ikke er nogen måde at lave en SQL-forespørgsel, der vil søge gennem alle felter uden eksplicit at erklære felt at søge i. Årsagen er, at der er en teori om relationelle databaser og strenge regler for at manipulere relationelle data (noget som relationel algebra eller codd algebra; det er hvad SQL er fra), og teorien tillader ikke ting som "bare søg i alle felter". Den faktiske adfærd afhænger naturligvis af leverandørens konkrete erkendelse. Men i almindelige tilfælde er det ikke muligt. For at være sikker, tjek SELECT
operatorsyntaks (WHERE
afsnit, for at være præcis).