gpt4 book ai didi

php - Laravel 查询生成器在直接 SQL 返回结果的地方返回空

转载 作者:行者123 更新时间:2023-11-29 02:24:44 26 4
gpt4 key购买 nike

我正在尝试解决使用 Laravel 的查询构建器没有得到任何结果的问题,但是当我运行相同的查询时,使用 PHPMyAdmin 从 getQueryLog 获取我得到了预期的结果。

我的查询构建器:

DB::table('likes')
->join('geoip_blocks', function($join)
{
$join->where("ip", ">=", "block_start")
->where("ip", "<=", "block_end");
})
->join('geoip_locations', "geoip_locations.id", "=", "location_id")
->select(array("country", DB::raw("count(*) as {$this->aggregate}")))
->groupBy('country')->get();

查询日志的输出:

array (size=3)
'query' => string 'select `country`, count(*) as count from `likes` inner join `geoip_blocks` on `ip` >= ? and `ip` <= ? inner join `geoip_locations` on `geoip_locations`.`id` = `location_id` group by `country`' (length=196)
'bindings' =>
array (size=2)
0 => string 'block_start' (length=11)
1 => string 'block_end' (length=9)
'time' => float 2.69

以及我在 phpmyadmin 中输入的查询:

select `country`, count(*) as count from `likes` inner join `geoip_blocks` on `ip` >= block_start and `ip` <= block_end inner join `geoip_locations` on `geoip_locations`.`id` = `location_id` group by `country`

我知道上面的查询效率极低。这只是为了概念验证,它甚至都不起作用,所以何必再进一步。我试过不同程度的歧义和明确无济于事。还尝试删除第二个连接并仅获取 location_id - 再次没有成功。

非常感谢任何帮助!

最佳答案

好吧,我想通了。我将 $join->where 切换为 $join->on,现在一切正常。表面上看起来生成了相同的查询,但我猜想在幕后发生了其他事情。

关于php - Laravel 查询生成器在直接 SQL 返回结果的地方返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24621953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com