南国风情 发表于 2023-7-2 04:47:30

ThinkPHP6.0 链式SQL语句

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();条件删除


    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',)->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】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: ThinkPHP6.0 链式SQL语句