首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Yii2如何进行where AND或or条件分组?

Yii2如何进行where AND或or条件分组?
EN

Stack Overflow用户
提问于 2015-07-22 16:03:49
回答 7查看 107.2K关注 0票数 49

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

代码语言:javascript
复制
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)

谢谢

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-06-17 10:01:28

您可以尝试这样做:

代码语言:javascript
复制
//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();
票数 111
EN

Stack Overflow用户

发布于 2015-07-22 16:37:32

试试这个-

代码语言:javascript
复制
$query = (new \yii\db\Query())
            ->select('*')
            ->from('users u')
            ->where(['and',['u.user_id'=>[1,5,8]],['or','u.status=1','u.verified=1']])
            ->orWhere(['u.social_account'=>1,'u.enable_social'=>1]);
    $command = $query->createCommand();
    print_r ($command->sql);die;

more info

票数 33
EN

Stack Overflow用户

发布于 2015-07-22 16:26:10

我假设您已经了解了Yii 2.0中的数据库配置,它与Yii 1.0版本中的基本相同。

如果你想使用activeQuery,你需要先定义一个‘USERS’类:

代码语言:javascript
复制
<?php
    namespace app\models;
    use yii\db\ActiveRecord;

    class USERS extends ActiveRecord {
        public static function tableName()
        {
            return 'users';
        }
    }
?>

然后,当你使用它时,你可以这样写它:

代码语言:javascript
复制
<?
    $usr_data = USERS::find()->  
            ->where("user_id IN(1,5,8) AND (status = 1 OR verified = 1) OR (social_account = 1 AND enable_social = 1)")
            ->all();    
?>

在我看来,active query提供了一种按子块分隔sql的方法。但是,当您有如此复杂的“AND OR”WHERE条件时,应用它没有任何意义。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31557302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档