加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

laravel用clickhouse查询问题及关注事项是什么

发布时间:2023-06-28 13:10:57 所属栏目:语言 来源:
导读:这篇文章主要讲解了“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;

以上就是关于“laravel用clickhouse查询问题及注意事项是什么”的介绍了,感谢各位的阅读。

(编辑:银川站长网)

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