To muligheder:
-
Brug
LIKE
søgeord sammen med procenttegn i strengenselect * from table where field like '%a%' or field like '%b%'.
(bemærk:Hvis din søgestreng indeholder procenttegn, skal du undslippe dem)
-
Hvis du leder efter mere en kompleks kombination af strenge, end du har angivet i dit eksempel, kan du regulære udtryk (regex):
Se MySQL-manualen for mere om, hvordan du bruger dem:http:/ /dev.mysql.com/doc/refman/5.1/en/regexp.html
Af disse ved hjælp af LIKE
er den mest sædvanlige løsning -- det er standard SQL, og i almindelig brug. Regex er mindre almindeligt brugt, men meget mere kraftfuldt.
Bemærk, at uanset hvilken mulighed du vælger, skal du være opmærksom på mulige præstationsimplikationer. Søgning efter understrenge som denne vil betyde, at forespørgslen skal scanne hele tabellen. Hvis du har en stor tabel, kan dette give en meget langsom forespørgsel, og ingen mængde indeksering vil hjælpe.
Hvis dette er et problem for dig, og du bliver nødt til at søge efter de samme ting igen og igen, foretrækker du måske at gøre noget som at tilføje et flagfelt til tabellen, som angiver, at strengfeltet indeholder den relevante under- strenge. Hvis du holder dette flagfelt opdateret, når du indsætter eller opdaterer en post, kan du blot forespørge flaget, når du vil søge. Dette kan indekseres og vil gøre din forespørgsel meget hurtigere. Om det er besværet værd at gøre det er op til dig, det afhænger af hvor dårlig ydeevnen er ved at bruge LIKE
.