使用多个where条件选择

6vl6ewon  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(358)

这是我的数据库表

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'"

提前谢谢你的帮助。

yrdbyhpb

yrdbyhpb1#

你也可以用in子句来表示同样的意思

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

dojqjjoe2#

这比三个值快。

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

但最好的解决方法是创建状态表和使用外键

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

在表顺序中使用这些外键status.id

zkure5ic

zkure5ic3#

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

相关问题