我有一个mysql表,它有一个将xml存储为字符串的列。我需要找到xml列包含6个字符的给定字符串的所有元组。没有其他事情 - 我需要知道的是这个6字符串是否存在。
因此,将文本格式化为xml可能无关紧要。
问题:如何在mysql中搜索?
即
SELECT * FROM items WHERE items.xml [contains the text '123456']
有没有办法可以使用LIKE运算符来执行此操作?
答案 0 :(得分:96)
您可以使用LIKE
clause进行一些简单的字符串匹配:
SELECT * FROM items WHERE items.xml LIKE '%123456%'
如果您需要更多高级功能,请在此处查看MySQL的全文搜索功能: http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html
答案 1 :(得分:10)
使用like可能需要更长时间,因此请使用 full_text_search :
SELECT * FROM items WHERE MATCH(items.xml) AGAINST ('your_search_word')
答案 2 :(得分:6)
SELECT * FROM items WHERE `items.xml` LIKE '%123456%'
%
中的LIKE
运算符表示“任何东西都可以在这里”。
答案 3 :(得分:4)
为什么不使用LIKE?
SELECT * FROM items WHERE items.xml LIKE '%123456%'
答案 4 :(得分:2)
SELECT * FROM items WHERE items.xml LIKE '%123456%'
答案 5 :(得分:0)
使用wordpress准备行时,上述解决方案不起作用。这是我使用的解决方案:
$Table_Name = $wpdb->prefix.'tablename';
$SearchField = '%'. $YourVariable . '%';
$sql_query = $wpdb->prepare("SELECT * FROM $Table_Name WHERE ColumnName LIKE %s", $SearchField) ;
$rows = $wpdb->get_results($sql_query, ARRAY_A);