总结 - Yii2.0 对数据库 查询的一些简单的操作 [ 2.0 版本 ]
从毕业到现在有1年多时间了吧,一直在用Yii框架,有时候只是会用,但是从来不去研究深层的框架源码,因为我知道,我研究也是不明白,源码太深了,像我这种小白,看不懂。但是现在,我试着慢慢的去看框架的源码,有时,你可能第一次看不明白,等你第二次再碰到同一个问题的时候,它需要你再看第二遍,那么这时,你会发现比上次明白的多一点。 今天,我把平时用到的Yii2.0 对数据库 查询的一些简单的操作简单的总结了一下,其中包括,看到别人优秀的博客,我收藏的,再加上我自己碰见的,都收藏起来了,在这里总结一下,希望能帮到那些像我一样,刚入职场不久,技术也不是很好的人。
注: 【如果有问题的地方,欢迎大家及时提出】
1: 此方法返回 ['name' => 'daxia'] 的所有数据;
User::find()->where(['name' => 'daxia'])->all();
2: 此方法返回 ['name' => 'daxia']的一条数据
User::find()->where(['name' => 'daxia'])->one();
3: 在条件name的基础上,额外添加另一个条件sex
User::find()->where(['name' => 'daxia'])->andWhere(['sex' => '女'])->one();
或者:
User::find()->where(['name' => 'daxia', 'sex' => '女'])->one();
说明: 这两种方法都是可以的
4: andFilterWhere/andWhere应用: 在[1427925600-1427968800]之间查询
User::find()->andFilterWhere(['between', 'regtime', '1427925600', '1427968800’])
说到andFilterWhere,下面我把用到的各种的情况示例列出:
1) : sql: id=1 AND id=2
条件: ['and', 'id=1', 'id=2']
2) : sql: id=1 OR id=2
条件: ['or', 'id=1', 'id=2']
3) : sql: id BETWEEN 1 AND 10
条件: ['between', 'id', 1, 10]
4) : sql: id IN (1, 2, 3)
条件: ['in', 'id', [1, 2, 3]]
5) : sql: name LIKE '%tester%' 模糊查询
条件: ['like', 'name', 'tester']
6) : sql: age>10
条件: ['>', 'age', 10]
5: orderBy() 应用
sql: ORDER BY `id` ASC, `name` DESC
Yii对应的model书写如下:
$query->orderBy([
'id' => SORT_ASC, 升序 默认
'name' => SORT_DESC, 降序
]);
6: groupBy() 应用:
sql: ... GROUP BY `id`, `status`
Yii对应的model书写如下:
$query->groupBy(['id', 'status']);
7: having()应用:
sql: ... HAVING `status` = 1
Yii对应的model书写如下:
$query->having(['status' => 1]);
8: limit() offset() 应用:
sql: ... LIMIT 10 OFFSET 20
Yii对应的model书写如下
$query->limit(10)->offset(20);
9: 用自己书写的sql语句,去查询符合的数据
User::findBySql('SELECT * FROM user')->one(); 此方法是用 sql 语句查询 user 表里面的一条数据;
User::findBySql('SELECT * FROM user')->all(); 此方法是用 sql 语句查询 user 表里面的所有数据;
说明: 测试 - 你也许想要测试或者使用一个由 yii\db\Query 对象创建的 SQL 语句。 你可以使用以下的代码来达到目的:
$query->createCommand()->getRawSql();
下面就是官网上面展示的,一些比较常见的查询方法:
yii\db\Query 提供了一整套的用于不同查询目的的方法。
● yii\db\Query::all(): 将返回一个由行组成的数组,每一行是一个由名称和值构成的关联数组(译者注:省略键的数组称为索引数组)。
● yii\db\Query::one(): 返回结果集的第一行。
● yii\db\Query::column(): 返回结果集的第一列。
● yii\db\Query::scalar(): 返回结果集的第一行第一列的标量值。
● yii\db\Query::exists(): 返回一个表示该查询是否包结果集的值。
● yii\db\Query::count(): 返回 COUNT 查询的结果。
● 其它集合查询方法: 包括 yii\db\Query::sum(), yii\db\Query::average(), yii\db\Query::max(), yii\db\Query::min() 等. $q 是一个必选参数, 既可以是一个字段名称,又可以是一个 DB 表达式。
具体参见YII官网:查询构建器
大霞daxia 北京
注册时间:2015-08-27
最后登录:2019-07-23
在线时长:13小时34分
最后登录:2019-07-23
在线时长:13小时34分
- 粉丝33
- 金钱925
- 威望80
- 积分1855
共 5 条评论
大虾
不是啊,字错了
不错 学习了
已收藏~~~~
皮皮虾!
你们都实际运用过?用大小写,转义啊。转义的SQL。。。。
大致的用过,然后看到框架里面的和自己平时用过的,就总结到一起了,如果有什么问题,请多多指教
基本上都用过