Yii2 数据库sql查询
一、基本查询
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查询的更多相关文章
- WordPress 常用数据库SQL查询语句大全
在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...
- [数据库] SQL查询语句表行列转换及一行数据转换成两列
原文来自:http://blog.csdn.net/Eastmount/article/details/50559008 本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两 ...
- MySql数据库 sql查询增加序号的伪列
在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n 例如:我们根据表的某个字段排序后,要对这些数据加上序列,这个时候序号常常不是我们建表时设置好的自增的主键id,怎么办呢? ...
- 数据库SQL 查询
查询 1.简单查询 select * from info(表名) --查所有数据 select code(列名),name(列名) from 表名 --查指定列的数据 selec ...
- 数据库 | SQL查询&LIMIT的用法
body{ text-align:left; width:80%; margin:10px 100px; } 前言 select top n 形式的语句可以获取查询的前几个记录,但是 mysql没有此 ...
- 数据库SQL查询作业
--设有三个关系 --S(S#,SNAME,AGE,SEX) --SC(S#,C#,GRADE) --C(C#,CNAME,TEACHER) --(1)检索LIU老师所授课程的课程号.课程名 sele ...
- SQL Server 数据库子查询基本语法
一.SQL子查询语句 1.单行子查询 select ename,deptno,sal from emp where deptno=(select deptno ...
- SQL入门经典(二) 之数据库基本查询、添加、更新和删除
使用SQL查询: SQL查询基本语法: SELECT [ALL|DISTINCT] [TOP (<expression>) [PERCENT] [WITH TIES] ] <col ...
- SQL查询数据库是否存在
在实际工作中会遇到通过SQL查询数据库是否存在的情况,下面一些语句可以提供一些帮助,本文的语句是在SQL08R2中测试的 1,查询当前数据库服务器所有数据库 select * From master ...
随机推荐
- FATAL Fatal error during KafkaServerStable startup. Prepare to shutdown (kafka.server.KafkaServerStartable) java.io.FileNotFoundException: /tmp/kafka-logs/.lock (Permission denied)
1.启动kafka的时候,报错如下所示: [-- ::,] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkCl ...
- Linux环境安装Eclipse工具开发
1.官网下载maven:https://maven.apache.org/download.cgi 2.上传到虚拟机进行解压缩操作: [hadoop@slaver1 package]$ tar -zx ...
- [转] Async/Await替代Promise的6个理由
Node.js 7.6已经支持async/await了,如果你还没有试过,这篇博客将告诉你为什么要用它. Async/Await简介 对于从未听说过async/await的朋友,下面是简介: asyn ...
- [转] Webpack-CommonsChunkPlugin
当前项目结构 项目结构 其中 Greeter.js 引用了 config.json main.js 和 second.js 都引用了 Greeter.js main.js 还引用了 onlyfor ...
- Java 中 static 和 volatile 关键字的区别?
static指的是类的静态成员,实例间共享 volatile跟Java的内存模型有关,线程执行时会将变量从主内存加载到线程工作内存,建立一个副本,在某个时刻写回.valatile指的每次都读取主内存的 ...
- java数组知识点总结
数组是一个用来存储同一个数据类型多个元素的一个容器(数组长度是固定的,数组中存储的元素的数据类型要求一致) 1.格式: 格式1: 数据类型[] 数组名 = new 数据类型[数组长度]; 格式2: 数 ...
- Visio制图之垮职能流程图
Visio制图中常用的一种就是带有不同职能,不同阶段的流程关系图. 下面是根据实际生产情况制作的一张“软件生产流程关系图”,供参考.
- 使用spark集成kudu做DDL
spark对kudu表的创建 定义kudu的表需要分成5个步骤: 1:提供表名 2:提供schema 3:提供主键 4:定义重要选项:例如:定义分区的schema 5:调用create Table a ...
- java项目打包生成MD5文件
之所以发出这篇博客,因为我前几天搞这个问题搞了几天,各种百度居然都没有找到相关的案例,虽然很简单的事件.可是百度博客上面居然都搜不到案例o(* ̄︶ ̄*)o觉得奇怪!!! 新总监来了,项目要上线,以前都 ...
- day67 ORM模型之高阶用法整理,聚合,分组查询以及F和Q用法,附练习题整理
归纳总结的笔记: day67 ORM 特殊的语法 一个简单的语法 --翻译成--> SQL语句 语法: 1. 操作数据库表 创建表.删除表.修改表 2. 操作数据库行 增.删.改.查 怎么连数据 ...