|
ThinkPHP6.0 链式SQL语句
查询单个数据
- $user = Db::query('select * from `user`');
- $user=Db::table('user')->where('UserID',1001)->find();//查询结果为空 返回 null
- $user=Db::table('user')->where('UserID',1001)->findOrEmpty();//查询结果为空 返回 空数组
复制代码 查询结果集(查询结果返回多条数据的意思)
- $user=Db::table('user')->where('UserID',1001)->select();
- $user=Db::table('user')->where('UserID', 1001)->select()->toArray();
复制代码 查询一个字段
- $user=Db::table('user')->where('UserID',1002)->value('UserName');//只能返回一条数据
复制代码 查询一列
- $user=Db::table('user')->where('Password',123456)->column('UserName');//可以返回多条数据
复制代码 添加数据
- $data=['UserID'=>'1005','UserName'=>'Season','Password'=>'123456'];
- Db::name('user')->insert($data);
复制代码 修改数据
- DB::table('user')->where('UserID',1005)->update(['Password'=>123]);
复制代码 删除数据
根据主键删除
- Db::table('user')->delete([1002,1003]);
复制代码 条件删除
- Db::table('user')->where('Password',123)->delete();
复制代码 查询数据
格式 where('字段名','查询表达式','查询条件');
- $user=Db::table('user')->where("UserID","=",1001)->select();
复制代码 模糊查询
- $user=Db::table('user')->where('UserName','like','s%')->select();
复制代码 区间查询
- $user=Db::table('user')->where('UserID','between','1001,1003')->select();
复制代码 IN查询
- $user=Db::table('user')->where('UserID','in',[1001,1003])->select();
复制代码 Not Null
- $user=Db::table('user')->where('Password','not null')->select();
复制代码 Null
- $user=Db::table('user')->where('Password',null)->select();
复制代码 链式操作示例
- $user=Db::table('user')->where('Password',123456)->order('UserName')->select();
复制代码 field操作(输出选择的字段名的数据)
- $user=Db::table('user')->field('UserID,UserName')->select();
复制代码 链式alias操作,设置表的名称(为了方便后面内容的书写)
- $user=Db::table('user')->alias('a')->where('a.UserID',1001)->select();
复制代码 limit 操作
- $user=Db::table('user')->limit(2)->select();
复制代码 page操作
- $user=Db::table('user')->page(2,5)->select();
复制代码 order操作,默认asc
- $user=Db::table('user')->order('UserID')->select();
- $user=Db::table('user')->order('UserID','desc')->select();
复制代码 group 操作
- $user=Db::table('user')->alias('u')->field('u.Status,SUM(u.Price)')->group('u.Status')->select();
复制代码 having操作
- $user=Db::table('user')->alias('u')->field('u.Status,SUM(u.Price)')->group('u.Status')->having('u.Status>0')->select();
复制代码 join操作
INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表中存在匹配,就返回行
复制代码 Transaction(自动):当函数内的sql语句出现错误了,则函数内的sql语句都不执行
- Db::Transaction(function (){
- Db::name('user')->where('UserID',1001)->save(['Price'=>Db::raw('Price-3')]);
- Db::name('user')->where('UserID',1002)->save(['Price'=>Db::raw('Price+3')]);
- });
复制代码 startTrans(手动):当sql语句出现错误了,则sql语句都不执行
- Db::startTrans();
- try {
- Db::name('user')->where('UserID',1001)->save(['Price'=>Db::raw('Price-3')]);
- Db::name('user')->where('UserID',1002)->save(['Price'=>Db::raw('Price+3')]);
- Db::commit();//提交事务
- }catch (\Exception $e){
- echo '执行SQL失败,开始回滚数据';
- Db::rollback();
- }
复制代码 获取器:$value 所有字段名是“UserName”的数据 $data所有数据
- $user=Db::name('user')->withAttr('UserName',function ($value,$data){
- var_dump($value);
- var_dump($data);
- })->select();;
复制代码 来源:https://www.cnblogs.com/SJGJ/p/17519481.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|