Home » Mysql » Search for string within text column in MySQL

Search for string within text column in MySQL

Posted by: admin November 1, 2017 Leave a comment

Questions:

I have mysql table that has a column that stores xml as a string. I need to find all tuples where the xml column contains a given string of 6 characters. Nothing else matters–all I need to know is if this 6 character string is there or not.

So it probably doesn’t matter that the text is formatted as xml.

Question: how can I search within mysql?
ie
SELECT * FROM items WHERE items.xml [contains the text '123456']

Is there a way I can use the LIKE operator to do this?

Answers:

You could probably use the LIKE clause to do some simple string matching:

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

If you need more advanced functionality, take a look at MySQL’s fulltext-search functions here: http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Questions:
Answers:

Using like might take longer time so use full_text_search

Select * from items where match(items.xml) against ('your_search_word')

Questions:
Answers:
SELECT * FROM items WHERE `items.xml` LIKE '%123456%'

The % operator in LIKE means “anything can be here”.

Questions:
Answers:

Why not use LIKE?

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

Questions:
Answers:

you mean:

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