前言[随时更新]
MySQL快速复习
MySQL原生查询
选择数据表
删除数据
聚合查询
时间查询
视图查询
子查询
总结/参考
- where('字段名','表达式','查询条件');
- whereOr('字段名','表达式','查询条件');
因表达式条件各不相同,有的结果是一个集合,我们只给出生成的SQL语句,不再给出运行结果,请上机测试!相信大家对运行结果都有预测能力
//1、字符串:eq
$result = Db::table('tp5_staff') -> where('id','eq',1010) -> select();
//2、操作符号:=
$result = Db::table('tp5_staff') -> where('id','=',1010) -> select();
//3、默认为相等,所以中间操作符可省略
$result = Db::table('tp5_staff') -> where('id',1010) -> select();
//输出查询结果
dump($result);
以上三种方式,查询结果完全相同
对应SQL语句:
SELECT * FROM tp5_staff WHERE id = 1010 ;
//1、字符串:neq
$result = Db::table('tp5_staff') -> where('id','neq',1020) -> select();
//2、操作符号:<>
$result = Db::table('tp5_staff') -> where('id','<>',1020) -> select();
//输出查询结果
dump($result);
SELECT * FROM `tp5_staff` WHERE `id` <> 1020 ;
//1、字符串:gt
$result = Db::table('tp5_staff') -> where('id','gt',1020) -> select();
//2、操作符号:>
$result = Db::table('tp5_staff') -> where('id','>',1020) -> select();
//输出查询结果
dump($result);
SELECT * FROM `tp5_staff` WHERE `id` > 1020 ;
//1、字符串:egt
$result = Db::table('tp5_staff') -> where('id','egt',1020) -> select();
//2、操作符号:>=
$result = Db::table('tp5_staff') -> where('id','>=',1020) -> select();
//输出查询结果
dump($result);
SELECT * FROM `tp5_staff` WHERE `id` >= 1020 ;
//1、字符串:lt
$result = Db::table('tp5_staff') -> where('id','lt',1020) -> select();
//2、操作符号:<
$result = Db::table('tp5_staff') -> where('id','<',1020) -> select();
//输出查询结果
dump($result);
SELECT * FROM `tp5_staff` WHERE `id` < 1020 ;
//1、字符串:elt
$result = Db::table('tp5_staff') -> where('id','elt',1020) -> select();
//2、操作符号:<=
$result = Db::table('tp5_staff') -> where('id','<=',1020) -> select();
//输出查询结果
dump($result);
SELECT * FROM `tp5_staff` WHERE `id` <= 1020 ;
//模糊查询:like
$result = Db::table('tp5_staff') -> where('name','like','%张%') -> select();
//输出查询结果
dump($result);
SELECT * FROM `tp5_staff` WHERE `name` LIKE '%合肥%' ;
语法:where(字段,’between’,’区间’); 区间字符串,第一个是最小值,第二个是最大值
例如:where(‘id’,’betweet’,’5,20’);表示id取值范围从5到20,很直观。
注:区间字符串,也可以用数组替代,推荐用数组,显示更专业,规范。
where(‘id’,’between’,[5,20]);
//区间用字符串表示
$result = Db::table('tp5_staff') -> where('id','between','1010,1020') -> select();
//区间用数组表示
$result = Db::table('tp5_staff') -> where('id','between',[1010,1020]) -> select();
//输出查询结果
dump($result);
SELECT * FROM `tp5_staff` WHERE `id` BETWEEN 1010 AND 1020 ;
说明:查询字段的值,必须在或者不在某一个集合内,集合是一个个离散的枚举字面量
例如:where(‘id’,’in’,’9,11,21’); 或者 where(‘id’,’not in’,’9,10,20’);同上,第三个字符串可用数组代替
实例:查询id 等于 1003,1005,1020 的数据,返回一个数组
//集合用字符串表示
$result = Db::table('tp5_staff') -> where('id','in','1003,1005,1020') -> select();
// 取反,即不在某个集合内 not in
$result = Db::table('tp5_staff') -> where('id','not in','1003,1005,1020') -> select();
//集合用数组表示
$result = Db::table('tp5_staff') -> where('id','in',[1003,1005,1020]) -> select();
// 取反,即不在某个集合内 not in
$result = Db::table('tp5_staff') -> where('id','not in',[1003,1005,1020]) -> select();
返回是三个元素的数组,即id=1003、id=1005和id = 1020的三条记录
生成SQL语句:
SELECT * FROM `tp5_staff` WHERE `id` IN (1003,1005,1020) ;
//判断sex字段是否存在值 null
$result = Db::table('tp5_staff') -> where('sex','null')-> select();
//条件取反:不为空 not null
$result = Db::table('tp5_staff') -> where('sex','not null')-> select();
//如果要判断一个字段值是否为空,要三个参数,中间为'='
$result = Db::table('tp5_staff') -> where('sex','=','null')-> select();
//条件取反:不为空 not null
$result = Db::table('tp5_staff') -> where('sex','=','not null')-> select();
SELECT * FROM `tp5_staff` WHERE `sex` IS NOT NULL
本节课以理论为主,具体实例也很简单,请同学们亲自上机做一下,举一反三