yii2.0学习有一段时间了,给大家分享一下一些简单的查询等如何操作。

查询:(这里最前面的Test是引用的模型名)

Test::find()->all();此方法返回所有数据;

Test::findAll(['status'=>1]);

这些查询出来是对象形式,但是一般转换成数组格式:

Test::find()->asArray()->all();     加上asArray()就取得数组形式的数据了,下面的自行添加。

Test::findOne($id);此方法返回主键id=1的一条数据(举个例子);

条件查询:where  、andwhere  、 orwhere

Test::find()->where(['name'=>小明'])->one();此方法返回['name'=>'小明']的一条数据;

Test::find()->where(['name'=>'小明'])->all();此方法返回['name'=>'小明']的所有数据;

Test::find()->andWhere(['sex'=>'男','age'=>'24'])->count('id');统计符合条件的总条数;

Test::find()->where(['and','id=1','id=2'])->all();     //id=1 and id=2

Test::find()->where(['or','id=1','id=2'])->all();      //id=1  or  id=2

sql语句查询:

Test::findBySql('SELECT * FROM user')->all();此方法是用sql  语句查询user 表里面的所有数据;

Test::findBySql('SELECT * FROM user')->one();此方法是用sql  语句查询user 表里面的一条数据;

其他辅助查询:

Test::find()->one();此方法返回一条数据;

Test::find()->all();此方法返回所有数据;

Test::find()->count();此方法返回记录的数量;

Test::find()->average();此方法返回指定列的平均值;

Test::find()->min();此方法返回指定列的最小值;

Test::find()->max();此方法返回指定列的最大值;

Test::find()->scalar();此方法返回值的第一行第一列的查询结果;

Test::find()->column();    此方法返回查询结果中的第一列的值;

Test::find()->exists();    此方法返回一个值指示是否包含查询结果的数据行;

Test::find()->batch(10);  每次取 10 条数据

Test::find()->each(10);  每次取 10 条数据, 迭代查询

支持防sql注入:

$sql="select * from test where id=:id";

①    $result=Test::findBySql($sql,array(":id"=>1))->all();

②    $result=Yii::$app->db->createCommand($sql)      //这种方法一般不用

->bindValue(':id',1)     //绑定参数

->queryOne();

模糊查询:(title like "%tit%" and title like "%abc%")

$result=Test::find()->where(['like','title',['tit','abc']])->all();            //%会自动添加

范围查询:(以id为例)

$result=Test::find()->where(['>','id',0])->all();                 //查询 id 大于 0 的

$result=Test::find()->where(['between','id',1,2])->all();        //查询 id 1-2 的

排序查询:

$result=Test::find()->where($condition)->asArray()->orderBy('id DESC')->all();    根据条件以数组形式返回所有数据,并根据ID倒序

批量查询:

foreach(Test::find()->batch(1) as $tests){              //batch 是指每次拿一条(可任意指定)。放进 $tests 数组中

//操作 $tests 数组

}

删除操作:(delete)

$result=Test::find()->where(['id'=>1])->delete();

$result[0]->delete();    //也可以删除其中的一项;

$result=Test::deleteAll('id>:id',array("id"=>0));          //删除 id 大于 0的。不写参数删除全部,支持占位符形式

③(带条件删除)

$connection->createCommand()

->delete('tbl_user','status = 0')

->execute();

④(使用sql删除)

$connection ->createCommand('DELETE FROM tbl_user WHERE userid=:userid')

->execute();

⑤(查找并删除)

$user = User::findOne(2);$user->delete();

// 输出语句

// DELETE FROM `tbl_user` WHERE `id`='2'

删除多个:deleteAll()

Test::deleteAll('status = :status AND age > :age', [':age' => 20, ':status' => 'active']); //DELETE FROM `tbl_user`where age>20 and status='active'

②Test::deleteAll([ 'and', 'type = :type_id',['not in', 'usercategoryid', $categoriesList]],[ ':type_id' => 2]); //DELETE FROM `tbl_user` WHERE (type = 2) AND (`usercategoryid` NOT IN (1, 2, 3))

Yii::app()->db->createCommand()->delete('tbl_user','id=:id',array(':id' => 2));

修改:(先查询后修改)

$result=Test::find()->where(['id'=>1])->one();          //返回一条

$result->title="title4";                             //要修改的字段

$result->save();                                      //保存数据

//修改

插入:

Yii::$app->db->createCommand()->insert('tbl_user',array(

注:本文由王智磊(王大宝儿)整理编写,也参考借鉴了很多大神的笔记,分享代码,分享成功,欢迎各位交流和转载,转载请注明出处(博客园:王大宝儿)http://www.cnblogs.com/wangzhilei/

yii mysql 查询 类型转换_yii2.0数据库查询修改等方法相关推荐

  1. yii mysql 查询 类型转换_Yii2.0 API改造(返回数据库对应字段数据类型)

    namespace common\ext;useYii;useyii\base\InvalidConfigException;useyii\base\NotSupportedException;use ...

  2. MySQL在存经纬度的数据库查询最近距离的应用

    A点经纬度:x1,y1  B点经纬度x2,y2 计算公式: 距离可以用r*arccos[cos(y1)*cos(y2)*cos(x1-x2)+sin(y1)*sin(y2)]来算r是地球半径6370k ...

  3. mysql php 缓存机制_mysql数据库查询缓存原理是什么

    mysql数据库查询缓存原理是:1.缓存SELECT操作的结果集和SQL语句,key为sql,value为查询结果集:2.如果新的SELECT语句到了,以这个sql为key去缓存中查询,如果匹配,就把 ...

  4. mysql读数据入库es_es数据库查询

    DB 与 Elasticsearch 混合之应用系统场景分析探讨 作者介绍 李猛,Elastic Stack深度用户,通过Elastic工程师认证,2012年接触Elasticsearch,对Elas ...

  5. mysql获取查询策略语句_MySQL数据库查询性能优化策略

    优化查询 使用Explain语句分析查询语句 Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句. 通过对查询语句的分析,可以了解查询语句的执行 ...

  6. mysql创建全外连接的视图_「MySql学习」Mysql学习系列之常用数据库查询语句

    一.简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等.10.5pt;font-family:"A ...

  7. mysql 查找数据过程_mysql数据库查询过程探究和优化建议

    查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...

  8. 外键查询_传统关系型数据库查询性能提高思路

    相信现阶段依然有许多的企业信息化项目依然采用单体架构,其数据存储主要方式依然以关系型数据库为主,比如oracle.mysql.postgresql等.企业初期,各种原因导致研发人员身兼数职,都是全栈的 ...

  9. java对Oracle数据库查询_java 连接Oracle数据库 查询

    java 连接Oracle数据库 查询 (2014-03-03 16:07:15) 标签: it 在ADF要先引入jar包 Oracle JDBC ;不然加载驱动不会成功. public static ...

最新文章

  1. python找不到reshape_如何加速Python程序
  2. 9.1 mnist_softmax 交叉熵多分类器
  3. 【uniapp】swiper 添加click事件
  4. Codeforces Round #530 Div. 1 自闭记
  5. java注解_Java注解教程及自定义注解
  6. defender 报备_去体育中心游泳碰上竞训怎么办?酒店承接会议业务需要报备吗?部门这样说...
  7. 能发出调子的c语言程序,求关于单片机的电子琴C程序
  8. [转]rails常用验证方法
  9. 联想计算机管理员权限设置,联想电脑windows10管理员权限开启的4种方法
  10. 英语演讲常用连接词和句子
  11. 开源 android 播放器
  12. 信息学奥赛(NOIP/CSP-J/S)学习全目录
  13. 为什么在CAD图纸中插入外部参照后会出现多余图形?
  14. 如何将excel三列数据合为一列日期数据
  15. mysql在linux和windows下导入和导出数据库、数据表总结
  16. Unity3D的Json篇:LitJson.dll插件
  17. 虚拟机配置windows7+office2010
  18. 中国黑客档案:中国红客联盟(转)
  19. 从财报看康佳、创维、TCL、海信能否守住家电市场的“江湖地位”?
  20. 询盘获客系统为什么会这么火,你知道吗?

热门文章

  1. 结合Layui框架,实现SpringMVC+Spring+Mybatis,SSM整合案例CRUD(超详细代码,外加说明)
  2. oracle数据库卷管理,AIX系统逻辑卷管理
  3. Sigmastar平台_锐化调试思路
  4. 微信小程序商城开发-商品详情页跳转购物车
  5. 什么是cert文件?
  6. jsp学习 jdbc连接数据库实现登录注册
  7. html特效代码 枫叶,经典FLASH特效代码
  8. 技术人的软实力(0)不可忽视的软实力培养
  9. 所以为什么要学ps?
  10. 长链接短链接拉起拼多多问题