在mysql中搜索文本列中的字符串

xesrikrc  于 2021-06-15  发布在  Mysql
关注(0)|答案(6)|浏览(455)

我有一个mysql表,它有一个将xml存储为字符串的列。我需要找到xml列包含6个字符的给定字符串的所有元组。其他什么都不重要——我只需要知道这个6个字符的字符串是否存在。
因此,将文本格式化为xml可能无关紧要。
问:如何在mysql中搜索?ie公司 SELECT * FROM items WHERE items.xml [contains the text '123456'] 有没有办法我可以用like操作符来做这个?

xienkqul

xienkqul1#

当您使用wordpress prepare行时,上述解决方案不起作用。这是我使用的解决方案:

$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);
wbrvyc0a

wbrvyc0a2#

使用like可能需要较长的时间,因此请使用全文搜索:

SELECT * FROM items WHERE MATCH(items.xml) AGAINST ('your_search_word')
9jyewag0

9jyewag03#

你可以用 LIKE 子句来进行一些简单的字符串匹配:

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

如果您需要更高级的功能,请在此处查看mysql的全文搜索功能:http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

qxgroojn

qxgroojn4#

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

这个 % 操作员输入 LIKE 意思是“任何东西都可能在这里”。

0vvn1miw

0vvn1miw5#

你的意思是:

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

dgenwo3n6#

为什么不用like?

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

相关问题