在多个WHERE条件下选择

时间:2018-07-02 11:19:26

标签: mysql mysqli

这是我在DB中的表格[orders]

ID   link        Status   quantity
-----------------------------------
118  aaaa       Pending     1
119  bbdbdb     In Progress 2 
120  asdasdas   Complete    3 
121  dasdasda   Processing  1  
122  aaaa       Cancel      2

我想在“链接”中选择状态为待处理,处理中或进行中的状态。这是正确的方法吗?

"SELECT * FROM orders WHERE link= '$link' AND status='Pending' OR status='In Progress' OR status='Processing'"

预先感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

您也可以使用IN子句

"SELECT * FROM orders WHERE link= '".$link."' AND status IN ('Pending','In Progress','Processing')"

答案 1 :(得分:1)

SELECT * 
FROM orders 
WHERE link= '$link' 
  AND ( 
    status='Pending' 
    OR status='In Progress' 
    OR status='Processing' 
  )

答案 2 :(得分:0)

这快于三个值。

"SELECT * FROM orders WHERE link= '".$link."' AND status NOT IN ('Complete','Cancel')"

但是最好的解决方法是使用状态创建表并使用FOREIGN KEY

CREATE TABLE status (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
) 

在使用这些FOREIGN KEY状态的表顺序中。ID