我有一個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