我有一个mysql表,它有一个将xml存储为字符串的列。我需要找到xml列包含给定的6个字符的字符串的所有元组。没有其他事情 - 我需要知道的只是这6个字符串是否存在。在MySQL中的文本列中搜索字符串
所以它可能没关系,文本被格式化为XML。
问题:如何在mysql中搜索? ie SELECT * FROM items WHERE items.xml [contains the text '123456']
有没有办法可以使用LIKE运算符来做到这一点?
我有一个mysql表,它有一个将xml存储为字符串的列。我需要找到xml列包含给定的6个字符的字符串的所有元组。没有其他事情 - 我需要知道的只是这6个字符串是否存在。在MySQL中的文本列中搜索字符串
所以它可能没关系,文本被格式化为XML。
问题:如何在mysql中搜索? ie SELECT * FROM items WHERE items.xml [contains the text '123456']
有没有办法可以使用LIKE运算符来做到这一点?
你也许可以使用LIKE
clause做一些简单的字符串匹配:
SELECT * FROM items WHERE items.xml LIKE '%123456%'
如果您需要更高级的功能,看看MySQL的全文搜索功能在这里:http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html
..我将如何修改这与PHP查询一起使用?我有一个字符串'$ message',我想选择具有该字符串的行。我有'SELECT * FROM消息WHERE from_id ='$ fromID'和to_id ='$ toID'并且消息LIKE'$ message''但我认为这不起作用 – Hristo 2010-06-30 15:32:06
SELECT * FROM items WHERE `items.xml` LIKE '%123456%'
的%
运营商LIKE
的意思是 “什么都可以在这里”。
你的意思是:
SELECT * FROM items WHERE items.xml LIKE '%123456%'
您是否错过了LIKE? – alex 2010-03-26 21:17:50
已提交编辑...他有一个缺少LIKE – 2013-12-23 12:59:39
为什么不使用什么样的?
SELECT * FROM items WHERE items.xml LIKE '%123456%'
使用like可能需要更长时间,因此请使用full_text_search
Select * from items where match(items.xml) against ('your_search_word')
这是否证明比LIKE更快? – 2013-04-03 18:48:16
请参阅:http://winashwin.wordpress.com/2012/08/28/mysql-search/ – 2012-08-30 09:25:45