Laravel:使用 GROUP_CONCAT 和 DISTINCT ON 的 selectRaw

Laravel: selectRaw with GROUP_CONCAT and DISTINCT ON

我正在尝试使用 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 给出了一个不支持的方法错误:

最后一个错误

The get method is not supported for ....

这意味着您正在尝试 get 请求该路线,但在 routes/web.php 中,有 post 对该路线的请求 所以问题可能是这样。

我想尝试执行 post 请求,但您可能刷新了选项卡或其他内容,这会触发 get 请求而不是 post。所以再次尝试 post 请求并判断错误是否仍然存在?