laravel用clickhouse查询问题及注意事项指的是什么
发布时间:2023-05-09 13:51:54 所属栏目: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; (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐