首页 > 数据库 >ThinkPHP6.0 链式SQL语句

ThinkPHP6.0 链式SQL语句

时间:2023-07-01 16:33:24浏览次数:50  
标签:UserID SQL Db ThinkPHP6.0 user 链式 table where select

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();;

标签:UserID,SQL,Db,ThinkPHP6.0,user,链式,table,where,select
From: https://www.cnblogs.com/SJGJ/p/17519481.html

相关文章

  • 从mysql主从复制原理分析故障及延时场景!
    在很多的情况下生产环境所发生的问题,实际上都可以通过其工作原理来解决例如:mysql主从复制原理:  1.当用户在主库中写入数据时,将sql语句的执行写入binlog二进制文件中2.从库会生成一个i/o线程用来监听binlog日志文件的变化,若binlog文件发生变化,那么i/o线程将会提取binlog日志......
  • IDEA MyBatis Log 插件,打印SQL语句
    打开Settings->plugins搜索插件MyBatisLog点击安装,完成后重启IDEA即可。点击Tools,选择MyBatisLogPlugin,会在下方打开一个窗口,这个窗口会输出mapper执行的SQL语句。......
  • MySQL联合索引生效验证
    建表、添加数据,用于测试CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENT,`gid`varchar(20)NOTNULL,`cid`int(11)DEFAULTNULL,`uid`int(11)DEFAULTNULL,`name`varchar(255)CHARACTERSETutf8COLLATEutf8_general_ciDEFAULTNULL,PRIMARYKEY......
  • jmeter接口测试 -- 连接数据库(MySQL)
    三个步骤一、下载MySQL的连接驱动1、先查看MySQL的版本1)服务器上查看:mysql--version 2)在连接工具上查看 2、下载连接驱动,下载地址:https://dev.mysql.com/downloads/connector/j/1)选择系统(windows系统才选择我下图中......
  • 启动mysql时报错Failed to start mysqld.service: Unit not found
    问题描述:启动mysql时报错Failedtostartmysqld.service:Unitnotfound,如下所示:数据库:mysql5.7.42系统:rhel7.31、问题重现--mysql安装过程[root@leo-mysql-master~]#yumlocalinstallhttps://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm[root@leo......
  • yum安装mysql时出现Public key for mysql-community-common-5.7.42-1.el7.x86_64.rpm
    问题描述:yum安装mysql时出现Publickeyformysql-community-common-5.7.42-1.el7.x86_64.rpmisnotinstalled告警,如下所示:数据库:mysql5.7.42系统:rhel7.31、问题重现[root@leo-mysql-master~]#yuminstall-ymysql-community-serverLoadedplugins:langpacks,product......
  • mysql 联合表查询从表即使有索引依然ALL的一个原因-索引ALL解决,字符编码方式不一致导
    mysql联合表查询从表即使有索引依然ALL的一个原因-索引ALL解决,字符编码方式不一致导致全表搜索那就是主表和从表的关联字段的编码方式不一样!!!产生的现象:解决之后,正确的使用了t2.order_noref索引,而不是ALL检查mysql主体编码方式,是否由于后来新建的表的关联字段和之前的主表的......
  • MYSQL:首次找不到.log文件
    一开始在文件中没有SXR.log文件。 后退,在my.ini中更改 一开始general-log=0,将其改为1即可。 ......
  • postgresql 14安装步骤(linux)
     ps:(跟别人视频看的,有坑,记得全看完)打开官网https://www.postgresql.org/download/linux/redhat/选择需要数据库的版本,虚拟机系统根据官方文档的步骤安装即可(我用的是postgresql14+centos7,主要是学习测试使用)  按照步骤安装:(yum)1.配置yum源sudoyuminstall-y......
  • nested exception is java.sql.SQLException: connection disabled
    标题:解决SpringBoot连接数据库出现"connectiondisabled"异常在使用SpringBoot连接数据库时,有时候会遇到"nestedexceptionisjava.sql.SQLException:connectiondisabled"异常。这个异常通常是由以下原因引起的:数据库连接配置错误:检查数据库连接的URL、用户名和密码是否正确配......