【发布时间】:2022-11-12 17:36:25
【问题描述】:
我基于 Laravel 9 构建我的项目,并尝试按日期组获取计数数据。我使用 DB::raw 来获取这样的 sql 查询:
$rawActive = "
SELECT
SBC.SITE,
OPR.OPERATOR,
COUNT(*) TMO_COUNT,
DATE_FORMAT( TMO.TMO_DATE, '%m%Y' ) BULANTAHUN
FROM
TOP_TMO TMO
INNER JOIN SUBSCRIBER SBC ON TMO.SUBSCRIBER_ID = SBC.ID
INNER JOIN OPERATOR OPR ON SBC.SITE_ID = OPR.ID
WHERE
SBC.SITE_ID = ".$siteId."
GROUP BY
DATE_FORMAT(
TMO.TMO_DATE,
'%m%Y')
";
$queryAct = DB::select(DB::raw($rawActive));
siteId 来自表单请求。
我搜索了一些解决方案,包括在 database.php 中编辑 'strict' => false, ,但仍然没有找到任何解决方案。
我尝试return $rawActive,这就是结果。
SELECT
SBC.SITE,
OPR.OPERATOR,
COUNT(*) TMO_COUNT,
DATE_FORMAT( TMO.TMO_DATE, '%m%Y' ) BULANTAHUN
FROM
TOP_TMO TMO
INNER JOIN SUBSCRIBER SBC ON TMO.SUBSCRIBER_ID = SBC.ID
INNER JOIN OPERATOR OPR ON SBC.SITE_ID = OPR.ID
WHERE
SBC.SITE_ID = 134
GROUP BY
DATE_FORMAT(
TMO.TMO_DATE,
'%m%Y')
如您所见,siteId 很好看。
我也在 mysql 上尝试了这个查询,它工作正常。
谢谢你的帮助。
【问题讨论】:
-
请
dd($siteId)并显示结果 -
没有问题,结果符合我输入的要求。
$siteId = $request->site_id;。我输入 123 它返回 123 -
您的 SQL 语法没问题。我什至在 SQL 验证器中检查了它。根据您提供的信息,我认为没有发生这种情况的原因。
'strict' => false与您的语法错误有什么关系? -
提供价值
$rawActive会导致错误,而不是创建此值的代码。 -
@ac.0101010111 我寻找解决方案并找到了该选项,但它没有用。它仍然有同样的错误