PHP MYSQL 查询未获取多个 WHERE 条件
Posted
技术标签:
【中文标题】PHP MYSQL 查询未获取多个 WHERE 条件【英文标题】:PHP MYSQL Query not fetching multiple WHERE Conditions 【发布时间】:2022-01-24 04:06:29 【问题描述】:我有一个搜索功能,onkeydown 会给出建议。目前,该查询仅从表 customer_name 的一行中获取,并且我正在尝试将 id 行也用于搜索建议。
所以我的查询语法看起来像这样:
$query = "SELECT * FROM customers WHERE customer_name OR id like'%".$search."%' LIMIT 5";
但上面的查询只会从第二个表名中获取,即 id 而不是两者。
我在这里做错了什么?
【问题讨论】:
【参考方案1】:我可能是错的,但WHERE customer_name
将始终评估为true
,因此包括所有记录。你需要指定 什么 customer_name
应该被比较。
正确查询:
SELECT * FROM customers
WHERE customer_name LIKE '%".$search."%'
OR id LIKE '%".$search."%'
LIMIT 5;
作为重要的安全提示,您应该查看prepared statements,而不是将数据与您的查询混合。这样做会使您容易受到 SQL 注入攻击。
【讨论】:
以上是关于PHP MYSQL 查询未获取多个 WHERE 条件的主要内容,如果未能解决你的问题,请参考以下文章
PHP查询mysql的时候用了like和LIMIT分页,如何获得未分页但是like了的总数据量
mysql 查询 - 使用左连接和 where 子句的多个计数