Yii框架下的where条件查询

6 篇文章 0 订阅

条件查询

$customers = Customer::find()->where($cond)->all(); 

$cond就是我们所谓的条件,条件的写法也根据查询数据的不同存在差异,那么如何用yii2的方式来写查询条件呢?

[[简单条件]]

[php]  view plain  copy
  1. // SQL: (type = 1) AND (status = 2).  
  2. $cond = ['type' => 1, 'status' => 2]   
  3.   
  4. // SQL:(id IN (1, 2, 3)) AND (status = 2)  
  5. $cond = ['id' => [1, 2, 3], 'status' => 2]   
  6.   
  7. //SQL:status IS NULL  
  8. $cond = ['status' => null]  

[【and】]:将不同的条件组合在一起,用法举例:

[php]  view plain  copy
  1. //SQL:`id=1 AND id=2`  
  2. $cond = ['and''id=1''id=2']  
  3.   
  4. //SQL:`type=1 AND (id=1 OR id=2)`  
  5. $cond = ['and''type=1', ['or''id=1''id=2']]  
  6.   
  7. //SQL:`type=1 AND (id=1 OR id=2)` //此写法'='可以换成其他操作符,例:in like != >=等  
  8. $cond = [  
  9.     'and',  
  10.     ['=''type', 1],  
  11.     [  
  12.         'or',  
  13.         ['=''id''1'],  
  14.         ['=''id''2'],  
  15.     ]  
  16. ]  

[[or]]:

[php]  view plain  copy
  1. //SQL:`(type IN (7, 8, 9) OR (id IN (1, 2, 3)))`  
  2. $cond = ['or', ['type' => [7, 8, 9]], ['id' => [1, 2, 3]]  

[[not]]:

[php]  view plain  copy
  1. //SQL:`NOT (attribute IS NULL)`  
  2. $cond = ['not', ['attribute' => null]]  

[[between]]: not between 用法相同

[php]  view plain  copy
  1. //SQL:`id BETWEEN 1 AND 10`  
  2. $cond = ['between''id', 1, 10]  

[[in]]: not in 用法类似

[php]  view plain  copy
  1. //SQL:`id IN (1, 2, 3)`  
  2. $cond = ['in''id', [1, 2, 3]] or $cond = ['id'=>[1, 2, 3]]  
  3.   
  4. //IN条件也适用于多字段  
  5. $cond = ['in', ['id''name'], [['id' => 1, 'name' => 'foo'], ['id' => 2, 'name' => 'bar']]]  
  6.   
  7. //也适用于内嵌sql语句  
  8. $cond = ['in''user_id', (new Query())->select('id')->from('users')->where(['active' => 1])]  

[[like]]:

[php]  view plain  copy
  1. //SQL:`name LIKE '%tester%'`  
  2. $cond = ['like''name''tester']  
  3.   
  4. //SQL:`name LIKE '%test%' AND name LIKE '%sample%'`  
  5. $cond = ['like''name', ['test''sample']]  
  6.   
  7. //SQL:`name LIKE '%tester'`  
  8. $cond = ['like''name''%tester', false]  

[[exists]]: not exists用法类似

[php]  view plain  copy
  1. //SQL:EXISTS (SELECT "id" FROM "users" WHERE "active"=1)  
  2. $cond = ['exists', (new Query())->select('id')->from('users')->where(['active' => 1])]  

此外,您可以指定任意运算符如下

[php]  view plain  copy
  1. //SQL:`id >= 10`  
  2. $cond = ['>=''id', 10]  
  3.   
  4. //SQL:`id != 10`  
  5. $cond = ['!=''id', 10]  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值