Tengo una tabla mysql que tiene una columna que almacena xml como una cadena. Necesito encontrar todas las tuplas donde la columna xml contiene una cadena dada de 6 caracteres. Nada más importa, todo lo que necesito saber es si esta cadena de 6 caracteres está allí o no.
Por lo tanto, probablemente no importe que el texto tenga el formato de xml.
Pregunta: ¿cómo puedo buscar dentro de MySQL? es decir, SELECT * FROM items WHERE items.xml [contains the text '123456']
¿Hay alguna manera de que pueda usar el operador LIKE para hacer esto?
Probablemente puedas usar la cláusula LIKE
para hacer una simple coincidencia de cadenas:
SELECT * FROM items WHERE items.xml LIKE '%123456%'
Si necesita una funcionalidad más avanzada, eche un vistazo a las funciones de búsqueda de texto completo de MySQL aquí: http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html
Usar like podría llevar más tiempo, así que use full_text_search :
SELECT * FROM items WHERE MATCH(items.xml) AGAINST ('your_search_word')
SELECT * FROM items WHERE `items.xml` LIKE '%123456%'
El operador %
en LIKE
significa “cualquier cosa puede estar aquí”.
¿Por qué no usar LIKE?
SELECT * FROM items WHERE items.xml LIKE '%123456%'
Te refieres:
SELECT * FROM items WHERE items.xml LIKE '%123456%'