当我使用PHP和MySQL学习搜索功能时,有一个查询代码:
SELECT id, category, location
FROM table
WHERE
(
category LIKE '%keyword%'
OR location LIKE '%keyword%'
)
我无法理解%在查询中使用并且使用转义字符,%keyword%
必须使用%$variable%
进行更改。
答案 0 :(得分:2)
%
是任意字符串的占位符。
因此,如果您有WHERE category LIKE '%keyword%'
内容,则会返回包含“关键字”一词的所有类别。
我想您要找的是找到包含给定关键字的内容,关键字在您的变量中,因此WHERE category LIKE '%$variable%'
是$variable
,其中%
是保存关键词。当然有一些问题,比如关键字不能包含{{1}}本身,否则必须进行转义,并且存在可能的SQL注入问题,应该使用prepared statements来解决,但这些问题似乎有点超出了问题的范围。