我有两个表,用户和销售。 sales.userId = user.id
我正在尝试使用以下查询。搜索用户和销售中的参数。
SELECT * FROM sales INNER JOIN users ON users.id = sales.userId WHERE 'users.fullname' like '%Cloud%' OR 'users.storename' like '%cloud%' order by sales.id DESC
没有结果出现。查询可能有什么问题。
例如,一个user['fullname']
是CloudBuck Abc
if(isset($_GET["q"]) && $_GET["q"]!="")
{
$q = trim($_GET["q"]);
$where = "WHERE users.fullname like '%".$q."%' OR users.storename like '%".$q."%'";
}
$query = "SELECT *
FROM sales
INNER JOIN users ON users.id = sales.userId ".$where." order by sales.id DESC";
答案 0 :(得分:1)
您正在引用字段名称,这是不允许的,如果是保留字或者不使用它,请使用反引号。
SELECT * FROM sales
INNER JOIN users ON users.id = sales.userId
WHERE `users`.`fullname` like '%Cloud%'
OR `users`.`storename` like '%cloud%'
order by sales.id DESC
答案 1 :(得分:1)
SELECT * FROM sales INNER JOIN users ON users.id = sales.userId
WHERE (users.fullname like '%Cloud%' OR users.storename like '%cloud%')
order by sales.id DESC
答案 2 :(得分:0)
删除列名称周围的单引号:
SELECT *
FROM sales
INNER JOIN users ON users.id = sales.userId
WHERE users.fullname like '%Cloud%' OR users.storename like '%cloud%' order by sales.id DESC
因为如果设置了单引号,mysql将把它用作字符串。