最新要闻

广告

手机

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

家电

环球滚动: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([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();;

关键词: