Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mysql子查询过滤_Php_Mysql - Fatal编程技术网

PHP mysql子查询过滤

PHP mysql子查询过滤,php,mysql,Php,Mysql,我有一张这样的桌子: id price condition username ---------------------------------------- 1 20 New Kim 2 30 Used Kim 3 40 Used George 4 60 New Tom 我的问题是关于再选。当我使用这个查询

我有一张这样的桌子:

id     price    condition     username
----------------------------------------
 1       20     New           Kim 
 2       30     Used          Kim
 3       40     Used          George
 4       60     New           Tom
我的问题是关于再选。当我使用这个查询时

SELECT *
FROM `table`
WHERE `username` = 'kim'
  AND `price` = '20'
   OR `condition` = 'New' 
对于最后一个条件,它变为true,并在条件为'New'时产生2条记录

但是,当我使用AND时,它返回正确的记录

SELECT *
FROM `table`
WHERE `username` = 'kim'
  AND `price` = '20'
  AND `condition` = 'New'

我希望嵌套查询,以便仅从第一个查询的结果(即用户名)中选择价格和条件。正如Rafal Wojcik所说,您需要使用一些括号来告诉数据库您正在分组什么

SELECT * FROM table WHERE username = 'kim' AND (price = '20' OR condition = 'New');
在没有任何指导的情况下,引擎会按条件分组:

username = 'kim' AND price = 20 OR condition = 'New' 
读作

((username = 'kim' AND price = 20) OR condition = 'New')
正如你所见,这不是你想要的。此处或适用于“kim-20”或“New”

您的all
案例也存在同样的问题

祝你好运