一、基本查询

User::find()->all(); //返回所有数据;
User::findOne($id); //返回 主键 id=1 的一条数据(举个例子);
User::find()->where(['name' => '小伙儿'])->one(); //返回 ['name' => '小伙儿'] 的一条数据;
User::find()->where(['name' => '小伙儿'])->all(); //返回 ['name' => '小伙儿'] 的所有数据;
User::find()->orderBy('id DESC')->all(); //是排序查询;
User::findBySql('SELECT * FROM user')->all(); //是用 sql 语句查询 user 表里面的所有数据;
User::findBySql('SELECT * FROM user')->one(); //是用 sql 语句查询 user 表里面的一条数据;
User::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id'); //统计符合条件的总条数;
User::find()->andFilterWhere(['like', 'name', '小伙儿']); //是用 like 查询 name 等于 小伙儿的 数据
User::find()->one(); //返回一条数据;
User::find()->all(); //返回所有数据;
User::find()->count(); //返回记录的数量;
User::find()->average(); //返回指定列的平均值;
User::find()->min(); //返回指定列的最小值 ;
User::find()->max(); //返回指定列的最大值 ;
User::find()->scalar(); //返回值的第一行第一列的查询结果;
User::find()->column(); //返回查询结果中的第一列的值;
User::find()->exists(); //返回一个值指示是否包含查询结果的数据行;
User::find()->batch(10); //每次取 10 条数据
User::find()->each(10); //每次取 10 条数据, 迭代查询

原文链接:http://www.yiichina.com/tutorial/95

二、and 和 or 复合句

->andWhere['customer_id'=>$customerId]
->andWhere(['or'
['customer_name' => $customername],
['LIKE', 'phone' , $phone],
])
// WHERE customer_id=1 AND (customer_name='张三' OR phone LIKE 13123456789) ->andWhere['customer_id'=>$customerId]
->orWhere(['and'
['customer_name' => $customername],
['LIKE', 'phone' , $phone],
])
// WHERE customer_id=1 OR (customer_name='张三' AND phone LIKE 13123456789) //2、如果需要些 and和or 的复合句,则:
->andWhere['customer_id'=>$customerId]
->andWhere(['or'
['status' => $status],
['and',
['customer_name' => $customername],
['LIKE', 'phone' , $phone],
],
])
// WHERE customer_id=1 AND ('status'=>1 OR (customer_name='张三' AND phone LIKE 13123456789)) //3、如果需要一些特殊的形式,则使用 new \yii\db\Expression();
->andWhere['customer_id'=>$customerId]
->andWhere(['or'
['status' => $status],
['and',
['customer_name' => $customername],
['IS NOT', phone' , new \yii\db\Expression('NULL')],
],
])
// WHERE customer_id=1 AND ('status'=>1 OR (customer_name='张三' AND phone IS NOT NULL))

三、modelName::updateAll($attributes, $condition = '', $params = [])

第一个参数是要更新的值,第二个是条件,如果第二个条件中用了占位符,就必须 要有第三个条件。 平时我们查询 的时候用 andWhere() 可以连接很多参数,那么 updateAll() 的时候,如果有多个参数怎么办?

User::updateAll(['status' => 1],['status' => 0,'flag' => 1]);

果参数都是固定值,这样的写法当然 OK,如果有范围值就只能这样写了,比如 flag != 1 怎么办?

User::updateAll(['status' => 1],['and', ['status' => 0],['<>', 'flag', 1]]);

原文链接:https://www.yiichina.com/tutorial/1842

`

Yii2 数据库sql查询的更多相关文章

  1. WordPress 常用数据库SQL查询语句大全

    在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...

  2. [数据库] SQL查询语句表行列转换及一行数据转换成两列

    原文来自:http://blog.csdn.net/Eastmount/article/details/50559008 本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两 ...

  3. MySql数据库 sql查询增加序号的伪列

    在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n 例如:我们根据表的某个字段排序后,要对这些数据加上序列,这个时候序号常常不是我们建表时设置好的自增的主键id,怎么办呢? ...

  4. 数据库SQL 查询

    查询 1.简单查询 select * from info(表名)   --查所有数据 select  code(列名),name(列名)  from 表名        --查指定列的数据 selec ...

  5. 数据库 | SQL查询&LIMIT的用法

    body{ text-align:left; width:80%; margin:10px 100px; } 前言 select top n 形式的语句可以获取查询的前几个记录,但是 mysql没有此 ...

  6. 数据库SQL查询作业

    --设有三个关系 --S(S#,SNAME,AGE,SEX) --SC(S#,C#,GRADE) --C(C#,CNAME,TEACHER) --(1)检索LIU老师所授课程的课程号.课程名 sele ...

  7. SQL Server 数据库子查询基本语法

    一.SQL子查询语句 1.单行子查询        select ename,deptno,sal        from emp        where deptno=(select deptno ...

  8. SQL入门经典(二) 之数据库基本查询、添加、更新和删除

    使用SQL查询: SQL查询基本语法: SELECT [ALL|DISTINCT]  [TOP (<expression>) [PERCENT] [WITH TIES] ] <col ...

  9. SQL查询数据库是否存在

    在实际工作中会遇到通过SQL查询数据库是否存在的情况,下面一些语句可以提供一些帮助,本文的语句是在SQL08R2中测试的 1,查询当前数据库服务器所有数据库 select *  From master ...

随机推荐

  1. lsattr chattr 文件安全设置

    [root@test_android_client_download xianlaigames]# lsattr -------------e- ./jilinmj.apk[root@test_and ...

  2. 一脸懵逼学习Hive(数据仓库基础构架)

    Hive是什么?其体系结构简介*Hive的安装与管理*HiveQL数据类型,表以及表的操作*HiveQL查询数据***Hive的Java客户端** Hive的自定义函数UDF* 1:什么是Hive(一 ...

  3. Zabbix监控——Zabbix自定义用户参数制作监控项

    https://blog.51cto.com/183530300/2087774 https://www.cnblogs.com/richardzgt/articles/7889404.html

  4. 为tomcat8安装Native library

    安装依赖包 yum install -y cmake gcc expat-devel perl wget 安装apr wget http://mirrors.hust.edu.cn/apache//a ...

  5. AndroidStudio在线搜索最新版本的依赖库

    操作步骤 打开File–>Project Structure 选中当前项目,点击Denpendencies标签 点击+,选Library dependency 打开界面如下: 输入想要的依赖库部 ...

  6. 使用Github Pages和Hexo构建个人博客

    Github Pages可以创建免费的静态站点,支持自带主题.支持自制页面等,并且可以使用Jekyll或者Hexo等静态博客框架进行管理. 独立博客是博客园等博客平台之外的一个良好补充,相比使用虚拟主 ...

  7. php让一个数组按照另外一个数组的键名进行排序

    $a = [ 'id', 'name', 'identityId', 'phone', 'email', 'schoolId' ]; $b = [ 'id' => '唯一标识', 'identi ...

  8. HDU 5977 Garden of Eden (树形dp+快速沃尔什变换FWT)

    CGZ大佬提醒我,我要是再不更博客可就连一月一更的频率也没有了... emmm,正好做了一道有点意思的题,就拿出来充数吧=.= 题意 一棵树,有 $ n (n\leq50000) $ 个节点,每个点都 ...

  9. Python 线程和进程

    一.什么是线程 1.线程是操作系统能够进行运算调度的最小单位.它被包含在进程中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 ...

  10. jquery正则表达式验证(手机号、身份证号、中文名称)

    这篇文章主要介绍了jquery正则表达式验证,实现手机号.身份证号.中文名称验证,感兴趣的小伙伴们可以参考一下 本文实例需要验证的内容:中文姓名.手机号.身份证和地址,验证方法分享给大家供大家参考,具 ...