2012-02-17 5 views
0

J'ai besoin d'aide pour la page bio d'un site de rencontre sur lequel je travaille.Recherche de mots partiels avec une requête SQL

J'ai un champ de texte appelé "bio" plein de, vous l'avez deviné, du texte! :)

Si je recherche la biographie déposée pour "stocks", je veux obtenir à la fois les lignes qui contiennent le mot "stocks" et les lignes qui contiennent le mot "bas", ou "stockage".

je le fais comme ça (ce qui devrait fonctionner):

AND bio LIKE '%stocks%' // this query should return both the rows which contain "stocks" and "stockings", right? What I am doing wrong? 

Comment puis-je faire cela? Ty! :)

+1

Vouliez-vous dire ' '% actions%''? Le 's' supplémentaire ne correspondrait certainement pas aux bas – Rodaine

Répondre

4

Eh bien '% stocks%' ne trouvera certainement pas de 'bas' - que diriez-vous d'abandonner 's' et d'utiliser '% stock%'? «stocks» ne fait pas partie des «bas», mais c'est comme ça que ça fonctionne.

+0

OMG je suis tellement stupide :) Je dois être fatigué de travail pendant 12 heures, peut-être que je vais supprimer la question – webmasters

+1

Il arrive à nous tous, mais nous ne nous rendons pas compte qu'ils sont fatigués.... – Olaf

1

"stocks" a un "s" après le "k". "stockage" a un "i" après le "k". Pour obtenir les correspondances que vous recherchez, vous devez rechercher uniquement '%stock%'.

0

actions bas stockage

la partie commune est stock, donc vous devez rechercher « %stock% » si vous voulez faire correspondre les trois.

vous pouvez également faire quelque chose comme "%stock%s%" qui correspondrait à la fois "stocks" et "bas" ou "stockage est". vous obtenez l'image. En variante, vous pouvez simplement utiliser la syntaxe match("text to match") against column, mais vous devez utiliser l'index de texte intégral column

Espérons que cela aide!

Questions connexes