2012-02-03 5 views
2

Je suis en train d'écrire une instruction SQL qui peut tirer un enregistrement unique en comparant ses variations différentesMYSQL: modèle correspondant à

Par exemple, j'ai un enregistrement d'un film, disons que Bad Boys II.

Mais les utilisateurs recherchent;
bad boys 2
badboys2>
badboys II (2003)
bad boys 2 (2003) etc.

.... INFÉRIEUR (MOVIE_TITLE) LIKE '% $% SEARCH_QUERY'

La requête ci-dessus ne retourne pas l'enregistrement unique que j'espérais obtenir. Toute aide sera appréciée

+1

Ceci est la correspondance de modèle, pas la reconnaissance de modèle. Les deux sont très différents. –

+0

Jetez un oeil à http://stackoverflow.com/questions/9132382/mysql-query-like-search-and-using-strings-with-symbols –

+0

Si vous utilisez des classements par défaut, les comparaisons ne sont pas sensibles à la casse. –

Répondre

1

Vous pouvez effectuer les opérations suivantes:
1) Mettez les mots de la chaîne dans un tableau
2) Cherchez un match avec chaque mot:

SELECT * FROM table WHERE LOWER(movie_title) LIKE '%$search_words[$i]%' 

Howether, si vous recherchez "bad booys 2" par exemple avec ce code vous obtiendrez tous les films qui contiennent les mots "mauvais", "boys" et 2.