【发布时间】:2019-01-21 03:55:10
【问题描述】:
Mysql 查询如下:
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'ifnull(SUM(case when location_code = ''',
location_code ,
''' then quantity end),0) AS `',
location_code , '`'
)
) INTO @sql
FROM
item_details;
SET @sql = CONCAT('SELECT item_number,SUM(quantity) as "total_quantity", ', @sql, '
FROM item_details
GROUP BY item_number');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
我想将它转换为 laravel eloquent,但我很困惑。因为存在很多说法。有PREPARE、EXECUTE、SET、DEALLOCATE等,可以看上面的查询
如何将其转换为 laravel eloquent?
【问题讨论】:
-
没有人可以帮忙吗?
-
使用 eloquent 拉取基本的 select 语句结果,然后在 PHP 中做你的业务逻辑(ifnull 测试)可能会更容易。
-
@Luke G. 这并不像您想象的那么容易。看来你不知道laravel eloquent
-
你熟悉查询构建器和 Eloquent 的区别吗?我认为您在谈论查询构建器,而不是 Eloquent。
-
@SuccessMan,我认为我没有在 Eloquent 中看到过这种情况。正如 Jonas 所提到的,查询构建器可能是实现您想要的额外逻辑的解决方案。
标签: php laravel laravel-5 eloquent laravel-5.6