291658

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

回帖
回帖数 4
阅读数 1382
发表时间 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 回帖

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 石洋洋 回帖
联系我们
联系人
金娟/高级客户经理
电话(微信)
18562856230
QQ号码
1826606239
联系邮箱
jinjuan@chandao.com
相关帖子
返回顶部
客服头像
金娟
高级客户经理
客服微信
18562856230
1826606239
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。