我是Yii-2框架的新手.如何使用activeQuery和模型在Yii-2框架中实现以下查询.

SELECT * FROM users AS u WHERE u.user_id IN(1,5,8) AND (u.status = 1 OR u.verified = 1) OR (u.social_account = 1 AND u.enable_social = 1)

谢谢

推荐答案

你可以试试这个:

//SELECT * FROM users AS u WHERE u.user_id IN(1,5,8) AND (u.status = 1 OR u.verified = 1) OR (u.social_account = 1 AND u.enable_social = 1)
$model = arname()->find()
       ->andWhere(['user_id'=>[1,5,8]])
       ->andWhere(['or',
           ['status'=>1],
           ['verified'=>1]
       ])
       ->orWhere(['and',
           ['social_account'=>1],
           ['enable_social'=>1]
       ])
       ->all();

Mysql相关问答推荐

使用复合主键更新后的MySQL触发器失败

亚马逊RDS MySQL-无法';t执行';使用读取锁定刷新表';

错误 2020 (HY000): 数据包大于 'max_allowed_pa​​cket' 字节,docker 容器内出现 mysql 错误

我是否需要在 N+1 列上建立索引,才能有效地在 N 列上执行 SELECT,并按其他列排序?

从单行中获取最大日期的最佳方法

替代对多个表执行 FULL OUTER JOIN?

Select 最高等级最多的部门名称

如何使用 DBD::mysql 判断 MySQL 服务是否正在运行

将sql查询转换为sequelize

MYSQL 删除两个已知字符串之间的字符串

MYSQL除以零警告,奇怪的行为

MySQL如何通过外键ID Select 多行?

估计行数 SQL

使用带有 ELSEIF 和 ELSE 的 3 列更新问题

Laravel $q->where() 日期之间

不正确的整数(2147483647)被插入到 MySQL 中?

在 PHP/MySQL 中将日期时间存储为 UTC

MySQL where NOT IN 名称数组?

MySQL - 错误 1045 - 访问被拒绝

在 Postgresql 中模拟 MySQL 的 ORDER BY FIELD()