Поиск строки в текстовом столбце в MySQL
У меня есть таблица mysql, в которой есть столбец, в котором хранится xml в виде строки. Мне нужно найти все кортежи, где столбец xml содержит заданную строку из 6 символов. Ничто другое не имеет значения - все, что мне нужно знать, это если эта 6-символьная строка есть или нет.
Так что, вероятно, не имеет значения, что текст отформатирован как xml.
Вопрос: как я могу искать в mysql?
т.е.
SELECT * FROM items WHERE items.xml [contains the text '123456']
Можно ли использовать этот оператор LIKE?
Ответы
Ответ 1
Возможно, вы можете использовать предложение LIKE
/a > выполнить несколько простых сопоставлений строк:
SELECT * FROM items WHERE items.xml LIKE '%123456%'
Если вам нужны более расширенные функции, ознакомьтесь с функциями полнотекстового поиска MySQL здесь: http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html
Ответ 2
Использование подобного может занять больше времени, поэтому используйте full_text_search
Select * from items where match(items.xml) against ('your_search_word')
Ответ 3
SELECT * FROM items WHERE `items.xml` LIKE '%123456%'
Оператор %
в LIKE
означает "все может быть здесь".
Ответ 4
вы имеете в виду:
SELECT * FROM items WHERE items.xml LIKE '%123456%'
Ответ 5
Почему бы не использовать LIKE?
SELECT * FROM items WHERE items.xml LIKE '%123456%'