像这样的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,但我很困惑。因为存在很多陈述。存在PREPARE
,EXECUTE
,SET
,DEALLOCATE
等你可以看到上面的查询
如何将其转换为雄辩的laravel?
主要是原始查询:
DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get();
DB::statement('SET @sql = CONCAT(...)');
DB::statement('PREPARE stmt FROM @sql');
DB::statement('EXECUTE stmt');
DB::statement('DEALLOCATE PREPARE stmt');
尝试这个:
DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get();
$sql = DB::selectOne('select @sql')->{'@sql'};
ItemDetails::select('item_number', DB::raw('SUM(quantity) as total_quantity'))
->selectRaw($sql)
->groupBy('item_number')
->get();
问题内容: 我的代码在这里检测the 是否等于某种MIME类型,如果是,它将进行一定的转换 我缩短了代码,因为它包含许多其他if语句,哪种设计模式适合于删除许多if and else or else if语句? 问题答案: 你可以有一个接口。然后,你可以为每个Mimetype创建一个类,如下所示: 每个转换器都需要一个这样的类。然后,你可以像这样设置地图: 然后,你的convertToMp3方法将
我是java编程新手,很难弄清楚这一点。 这是我的代码: 有没有办法将其转换为switch-case语句?
这里我的代码检测< code>mimeType是否等于某个MIME类型,如果是,它将进行某种转换 我把代码缩短了,因为它有很多else if语句,什么设计模式适合去掉很多if和else或者else if语句?
我有一个完全完成的项目,由Laravel后端和反应前端组成。反应应用程序包装在Laravel代码中,只有在登录和一些选择后才可用,这些都是在laravel中完成的,并带有它的视图。我想把反应应用程序做成一个独立的应用程序,并把laravel代码做成一个api,从服务器通过。一个url,这样反应应用程序将通过向laravel api发出请求来工作。 所以我的第一个问题是:有没有一种方法可以在我的la
我继承了一个需要进一步开发的web系统。该系统似乎是由阅读了PHP教程两章的人创建的,他认为自己可以编写代码。。。 所以网页本身是UTF8格式的,显示并输入其中的所有内容。数据库表是用UTF8字符集创建的。但是,在配置中,有“SET NAMES LATIN1”。换句话说,UTF8编码的字符串用强制拉丁1编码填充到数据库中。 有没有一种方法可以将这些乱七八糟的东西转换为实际存储在utf8中并摆脱la
我的数据库中有一个表,它看起来像(表中可以有相同的元组): 我必须在as(Branch属性是动态的)后面显示结果: 我希望将此过程转换为单个SQL语句。我试过了,但找不到解决办法。我怎样才能做到这一点呢?谢谢