上一篇文章讲解“数据库查询构造器-删除数据”,本篇文章讲解“数据库查询构造器-查询表达式”。
查询表达式:
查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓。
注意:
1. Field使用字段的驼峰命名方式。
表达式不分大小写,支持的查询表达式有下面几种:
1. 等于(=)
新建Index控制器,并新建equation方法:
预览:
2. 不等于()
修改Index控制器下的equation方法:
预览:
3. 大于(>)
修改Index控制器下的equation方法:
预览:
4. 大于等于(>=)
修改Index控制器下的equation方法:
预览:
5. 小于(
修改Index控制器下的equation方法:
预览:
6. 小于等于(
修改Index控制器下的equation方法:
预览:
7. [NOT] LIKE: 同sql的LIKE
1)like查询的基本使用
在Index控制器中,新建likeQuery方法
预览:
2)like查询支持使用数组
修改Index控制器下的likeQuery方法:
预览:
注意:
1. not like与like用法相同。
2. 为了更加方便,应该直接使用whereLike方法
Db::name('user')->whereLike('name','thinkphp%')->select();
Db::name('user')->whereNotLike('name','thinkphp%')->select();
8. [NOT] BETWEEN :同sql的[not] between
1)查询条件为字符串
在Index控制器中,新建betQuery方法:
预览:
2)查询条件为数组
修改Index控制器下面的betQuery方法:
预览:
注意:
1. 快捷的查询方式:
Db::name('user')->whereBetween('id','10,20')->select();
Db::name('user')->whereNotBetween('id','10,20')->select();
9. [NOT] IN:同sql的[not] in
1)查询条件为字符串
在Index控制器中,新建inQuery方法:
预览:
2)查询条件为数组
修改Index控制器下inQuery方法:
预览:
注意:
1. 快捷的查询方式:
Db::name('user')->whereIn('id','10,20,30')->select();
Db::name('user')->whereNotIn('id','10,20,30')->select();
2. [NOT] IN查询支持使用闭包方式。
10. [NOT] NULL
1)查询字段是否是NULL
在Index控制器中,新建nullQuery方法:
预览:
2)如果你需要查询一个字段的值为字符串null或者not null,使用以下方式
查询表中name字段值为null或not null的数据:
修改Index控制器下的nullQuery方法:
预览:
注意:
1. 推荐的方式是使用whereNull和whereNotNull方法查询:
Db::name('user')->whereNull('name')
->whereNull('email')
->whereNotNull('name')
->select();
11. EXP:表达式
EXP支持更复杂的查询情况。
在Index控制器中,新建expQuery方法:
预览:
注意:
1. exp查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称。
12. 动态查询
对于上面的查询表达式,可以使用动态查询方法进行简化。
在Index控制器中,新建dynQuery方法:
预览:
ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员
关注卓象程序员,定期发布技术文章
下一篇讲解“查询构造器-链式操作”
领取专属 10元无门槛券
私享最新 技术干货