加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

laravel用clickhouse查询问题与注意事项是什么

发布时间:2023-07-05 15:00:35 所属栏目:PHP教程 来源:
导读:这篇文章主要讲解了“laravel用clickhouse查询问题及注意事项是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel用clickhouse查询问题
这篇文章主要讲解了“laravel用clickhouse查询问题及注意事项是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel用clickhouse查询问题及注意事项是什么”吧!
 
下面由Laravel教程栏目给大家介绍关于在laravel中使用clickhouse查询引起的“DB::Exception: Missing columns”问题,希望对大家有所帮助!
 
使用 clickhouse 尤其注意:不能这么写!
 
   $where = [];
 
    if($cookieId) {
 
        $where['cookie_id'] = $cookieId;
 
    }        
 
    if($host) {
 
        $where['host'] = $host;
 
    }        
 
    if($uri) {
 
        $where['uri'] = $uri;
 
    }
 
    $builder = DB::connection('clickhouse')
 
        ->table((new AccessLogs)->getTable())
 
        ->where($where);
 
    if(!empty($startTime)) {
 
        $builder->where('create_time', '>=', $startTime);
 
    }
 
    if(!empty($endTime)) {
 
        $builder->where('create_time', '<=', $endTime);
 
    }登录后复制
 
当多个条件查询时,$where 数组在 sql 中会被当成一个字段,从而导致 DB:: Exception: Missing columns: ‘2022-09-27 13:00:49’ ‘2022-09-27 16:00:49’ while processing query 的错误。
 
这样优化:
 
   $builder = DB::connection('clickhouse')
 
        ->table((new AccessLogs)->getTable());
 
    if(!empty($cookieId)) {
 
        $builder->where('cookie_id', $cookieId);
 
    }        
 
    if(!empty($host)) {
 
        $builder->where('host', $host);
 
    }        
 
    if(!empty($uri)) {
 
        $builder->where('uri', $uri);
 
    }
 
    if(!empty($startTime)) {
 
        $builder->where('create_time', '>=', $startTime);
 
    }
 
    if(!empty($endTime)) {
 
        $builder->where('create_time', '<=', $endTime);
 
    }登录后复制
 
才能正确查询。
 
多提一句:在命令行查询时,参数值使用单引号,使用双引号时,参数值也会被当成一个字段:
 
正确操作是:
 
select * from access_log where create_time >= ‘2022-09-27 13:00:49’ and create_time <= ‘2022-09-27 16:00:49’ order by create_time desc limit 10;
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!