MySQL LIKE函数中的%有啥用
Posted
技术标签:
【中文标题】MySQL LIKE函数中的%有啥用【英文标题】:What is the use of % in MySQL LIKE functionMySQL LIKE函数中的%有什么用 【发布时间】:2015-04-15 16:32:36 【问题描述】:SELECT id, category, location
FROM table
WHERE
(
category LIKE '%keyword%'
OR location LIKE '%keyword%'
)
我无法理解在查询中使用 % 并使用转义字符时,%keyword%
是否必须更改为 %$variable%
。
【问题讨论】:
【参考方案1】:%
是任意字符串的占位符。
因此,如果您有 WHERE category LIKE '%keyword%'
的内容,这将返回包含“关键字”一词的所有类别。
我猜你正在寻找包含给定关键字的东西,并且关键字在你的变量中,所以这将是WHERE category LIKE '%$variable%'
,$variable
是包含关键字的变量。这当然有一些问题,比如关键字本身不能包含%
,否则它必须被转义并且存在可能的SQL注入问题,应该使用prepared statements来解决,但这些问题似乎有点超出问题的范围。
【讨论】:
和变量有什么关系(见问题)。 那么,我应该使用 % 作为变量吗? 我不明白你的意思,抱歉。如果您担心转义,那么您可能应该使用准备好的语句。 我的意思是我应该使用WHERE category LIKE '%$variable%'
或WHERE category LIKE '$variable'
这取决于你想要什么。但最后,结果查询将是您放入字符串中的变量的内容,因此如果您的变量包含bunny
,那么WHERE category LIKE '%$variable%'
将变为WHERE category LIKE '%bunny%'
。您也可以先将 %
添加到 $variable 中的字符串中,然后将其留在 WHERE 中并获得相同的结果字符串以上是关于MySQL LIKE函数中的%有啥用的主要内容,如果未能解决你的问题,请参考以下文章
ActivityManager 中的奇怪函数:isUserAMonkey。这是啥意思,它有啥用?
Codeception 中的“expect_file()”函数有啥用?