Laravel:带有 GROUP_CONCAT 和 DISTINCT ON 的 selectRaw
Posted
技术标签:
【中文标题】Laravel:带有 GROUP_CONCAT 和 DISTINCT ON 的 selectRaw【英文标题】:Laravel: selectRaw with GROUP_CONCAT and DISTINCT ON 【发布时间】:2021-10-24 07:13:50 【问题描述】:我正在尝试使用DISTINCT ON
仅显示一个drug_code
并使用CONCAT
将drug_dosage
显示在另一个不同的drug_code
上。
这是没有 CONCAT 的输出:
$all_drugs = HmsBbrKnowledgebaseDrug::selectRaw('DISTINCT ON (drug_code)
bbr_drug_id,
hospital_id,
drug_code,
drug_name,
drug_dosage,
display_flag'
)
->orderBy('drug_code', 'ASC')
->get();
如您所见,它可以正常工作,但是在添加带有分隔符的 GROUP_CONCAT
时出现错误:
$all_drugs = HmsBbrKnowledgebaseDrug::selectRaw('DISTINCT ON (drug_code)
bbr_drug_id,
hospital_id,
drug_code,
drug_name,
GROUP_CONCAT(drug_dosage SEPARATOR ",") as dosage
display_flag'
)
->orderBy('drug_code', 'ASC')
->get();
我不知道为什么GROUP_CONCAT
给出了一个方法不支持的错误:
【问题讨论】:
【参考方案1】:最后的错误
get 方法不支持 ....
这意味着您正在尝试 get
请求路由,但在 routes/web.php 中,有 post
请求该路由
所以问题可能是这样的。
我想尝试发送一个帖子请求,但您可能已经刷新了选项卡或其他内容,这会触发get
请求而不是post
。所以再次尝试发布请求并确定错误是否仍然存在?
【讨论】:
以上是关于Laravel:带有 GROUP_CONCAT 和 DISTINCT ON 的 selectRaw的主要内容,如果未能解决你的问题,请参考以下文章
带有 LEFT JOIN 和 IF 语句的有限 GROUP_CONCAT
带有 GROUP_CONCAT 和 CONCAT 的子查询返回 STILL 多于 1 行,错误 1242
MariaDB:带有子查询的 group_concat 失败