2009-11-30 2 views
0
SELECT * FROM disney; 
+++++++NAME+++++++ 
lion king 
cinderella 
the little mermaid 
+++++++++++++++++++ 

$string = "i love the movie lion king, it rocks!" 

Je veux obtenir le nom de disney dont le nom se trouve dans la chaîne donnée. C'est un peu comme:MySQL - Est-il possible de faire correspondre une donnée de table à une chaîne donnée plutôt que vice versa

'SELECT * FROM disney WHERE NAME LIKE "%'.$string.'%";' 

seulement l'inverse (mais n'a pas bien fonctionné quand je l'ai essayé).

Existe-t-il une fonction MYSQL pour vérifier si une donnée dans une cellule de tableau existe dans une chaîne donnée?

Merci beaucoup!(). je travaille avec PHP!

+0

'SELECT * FROM disney O WH NAME COMME '% {$ string}%';' –

Répondre

1

Je pense que ce qui suit devrait travailler (je me souviens d'essayer de faire la même chose une fois, et je pense que c'est ce que je):

'SELECT * FROM disney WHERE "' . $string . '" LIKE CONCAT("%",NAME,"%")'; 
+0

Cela mettra seulement un joker sur le côté droit de la requête. –

+0

merci! ça a vraiment marché! – Gal

+0

OMG Poneys, je l'ai changé pour convenir à mes besoins (concat (%, name,%)) – Gal

1

Il y a la INSTR fonction qui devrait fonctionner pour cela:

SELECT * FROM disney WHERE INSTR('i love the movie lion king, it rocks!', name) > 0 
+1

Modifiez les guillemets doubles en guillemets simples, et cela fonctionnera. –

+0

choses @Cute: Merci ... pas ma journée ... – Bobby

0

Vous pouvez également essayer FULLTEXT la fonction de recherche de MySQL qui fonctionne uniquement avec les tables MyISAM:

$query = "SELECT * FROM disney WHERE MATCH(NAME) AGAINST ('$text')"; 
Questions connexes