我正在尝试在我的网站上设置搜索功能,该搜索功能只返回用户输入的关键字的完全匹配。因此,如果用户搜索“狗”,我不希望在搜索结果中出现标题为“Doggy Style”的文章(仅举一个例子,我并没有真正拥有该名称的文章)。这当然就是这样:
SELECT * FROM articles WHERE article_title LIKE '%$searchQuery%'
这里的$ searchQuery是一个从用户输入表单中获取的PHP变量。那么有没有办法只返回完全匹配?
答案 0 :(得分:4)
SELECT * FROM articles WHERE article_title = '$searchQuery'
会返回完全匹配。注意从'like'到'='的变化,注意%符号已被删除。
另外请确保永远不要使用来自用户表单的直接输入作为输入来搜索MySQL数据库,因为它不安全。
答案 1 :(得分:1)
对于完全匹配,您可以这样做:
SELECT * FROM articles WHERE article_title = '$searchQuery'
在MySql中,非二进制字符串比较默认情况下不区分大小写。
答案 2 :(得分:1)
SELECT * FROM articles WHERE article_title = '$searchQuery'
答案 3 :(得分:-1)
我认为你应该这样做,它很完美。
SELECT * FROM articles WHERE article_title =' $ searchQuery'
执行(阵列('%' $ SEARCHQUERY'%'))