ToB企服应用市场:ToB评测及商务社交产业平台
标题:
ThinkPHP6.0 链式SQL语句
[打印本页]
作者:
罪恶克星
时间:
2023-7-1 16:54
标题:
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();;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4