写数据库查询语句的时候,如果有两个where条件以or的关系并行,要怎么写

回贴
回帖数 4
阅读数 1043
发表时间 2021-08-24 14:39:06
🌇
ggzy 楼主
SELECT *
FROM zt_TASK
WHERE (assignedTo = 'admin'
OR mailto LIKE "%,admin%")
AND deleted = "0"

AND zt_TASK.status NOT IN ('closed',  'cancel')


4个回复
于涛 沙发


您好,您这样查询看下呢

SELECT *

FROM zt_TASK

WHERE assignedTo = 'admin'

OR mailto LIKE "%,admin%"

AND deleted = "0"

AND zt_TASK.status NOT IN ('closed',  'cancel')

2021-08-24 14:45:37 于涛 回帖
🌇
ggzy 板凳 回复#1

我的意思可能没表达清楚,我想要在代码中实现我上面写的sql语句

->where('assignedTo')->eq($this->app->user->account)
        ->orwhere('mailto')->like("%,{$this->app->user->account}%")
        ->andWhere('status')->notIN('cancel, closed')
        ->andWhere('deleted')->eq(0)

现在这样写,查出来的数据会少一条

2021-08-24 15:22:40 ggzy 回帖
🌇
ggzy #3 回复#1
您这样的写法,在数据库里查询也是会少一条记录的
原帖由 于涛 于 2021-08-24 14:45:37 发表


您好,您这样查询看下呢

SELECT *

FROM zt_TASK

WHERE assignedTo = 'admin'

OR mailto LIKE "%,admin%"

AND deleted = "0"

AND zt_TASK.status NOT IN ('closed',  'cancel')

2021-08-24 15:23:33 ggzy 回帖
石洋洋 #4

2种方案:

方案一:

$this->dao->query($sql)->fetch();用于查询数据
$this->dao->exec($sql);用于更新数据

方案二:

        ->where('status')->notIN('cancel, closed')

        ->andWhere('assignedTo',true)->eq($this->app->user->account)
        ->orwhere('mailto')->like("%,{$this->app->user->account}%")

        ->markRight(1);

        ->andWhere('deleted')->eq(0)

2021-08-24 17:06:54 石洋洋 回帖
联系人
魏中显/高级客户经理
电话(微信)
18561939726
QQ号码
1746749398
联系邮箱
weizhongxian@chandao.com
返回顶部
魏中显
高级客户经理
18561939726
1746749398
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。 问题反馈反馈点击这里,让我们聆听您的建议与反馈。