设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > PHP教程 > 正文

讲解laravel用clickhouse查询问题及注意事项是什么

发布时间:2023-02-08 08:47 所属栏目:121 来源:互联网
导读:
导读:这篇文章主要讲解了laravel用clickhouse查询问题及注意事项是什么,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习laravel用clickhouse查询问题及注意事项是什么吧! 下面由Laravel教程栏目给大家介绍关于在l
  这篇文章主要讲解了“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;
 
  以上就是关于“laravel用clickhouse查询问题及注意事项是什么”的介绍了,感谢各位的阅读,希望这篇文章能帮助大家解决问题。
 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读