2010-04-20 7 views
2

Y at-il un moyen d'inverser l'opérateur SQL Like afin qu'il recherche un champ en arrière? Par exemple, j'ai une valeur dans un champ qui ressemble à ceci "Jeu vidéo Xbox 360". Si j'écris une requête comme ci-dessous, elle renvoie le résultat correctement.SQL Comme la question

SELECT id FROM table WHERE title like "%Xbox%Game%" 

Cependant, quand je cherche comme ça, il n'y a aucun résultat.

SELECT id FROM table WHERE title like "%Video%Xbox%" 

Je dois le faire correspondre dans n'importe quelle direction. Comment puis-je contourner cela?

Répondre

5

Une autre option

SELECT id FROM table WHERE title RLIKE "(Xbox|Video)" 
+0

Cela a fonctionné parfaitement. Je n'ai jamais utilisé rlike auparavant. Je vais devoir lire sur comment ça fonctionne, mais ça marche! Merci! – mike

+0

Ceci correspondra aux titres avec l'un ou l'autre des termes, ce qui peut ne pas être ce que vous voulez, par ex. Si l'utilisateur tape "Playstation Game", il retournera "Xbox 360 Video Game" – Duncan

7

Que diriez-vous:

id SELECT de table où le titre comme "% vidéo%" et le titre comme "% Xbox%"

+0

Ce n » Je travaille bien parce que les utilisateurs effectuent une recherche et je ne sais pas combien de mots-clés ils entrent. – mike

+0

@mike: Vous ne pouvez pas créer une requête avec un nombre arbitraire de conditions? Il ne devrait pas être différent de construire une chaîne de correspondance de modèle – Duncan