Rechercher une chaîne dans la colonne de texte dans MySQL

J’ai la table mysql qui a une colonne qui stocke le XML en tant que chaîne. Je dois trouver tous les tuples où la colonne xml contient une chaîne de 6 caractères. Rien d’autre ne compte – tout ce que j’ai besoin de savoir, c’est si cette chaîne de 6 caractères est là ou non.

Donc, cela n’a probablement pas d’importance que le texte soit formaté en XML.

Question: comment rechercher dans mysql? ie SELECT * FROM items WHERE items.xml [contains the text '123456']

Est-il possible d’utiliser l’opérateur LIKE pour le faire?

Vous pourriez probablement utiliser la clause LIKE pour faire une simple correspondance de chaîne:

 SELECT * FROM items WHERE items.xml LIKE '%123456%' 

Si vous avez besoin de fonctionnalités plus avancées, consultez les fonctions de recherche de texte intégral de MySQL ici: http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Utiliser like pourrait prendre plus de temps, alors utilisez full_text_search :

 SELECT * FROM items WHERE MATCH(items.xml) AGAINST ('your_search_word') 
 SELECT * FROM items WHERE `items.xml` LIKE '%123456%' 

L’opérateur % dans LIKE signifie “tout peut être ici”.

Pourquoi ne pas utiliser LIKE?

 SELECT * FROM items WHERE items.xml LIKE '%123456%' 

vous voulez dire:

 SELECT * FROM items WHERE items.xml LIKE '%123456%'