sql - 删除 JSON_AGG(聚合函数)中的括号和引号

标签 sql laravel function controller aggregate-functions

public function fetchdrug(Request $search_drug){

    $filter_drug = $search_drug->input('search_drug');
    $all_drugs = HmsBbrKnowledgebaseDrug::selectRaw('DISTINCT ON (drug_code)
                                                    drug_code,
                                                    drug_name,
                                                    JSON_AGG(drug_dosage) AS dosage_list')
                                ->GroupBy('drug_code', 'drug_name')
                                ->orderBy('drug_code', 'ASC')
                                ->get();

    return response()->json([
        'all_drugs'=>$all_drugs,
    ]);
}
我正在使用 JSON_AGG检索 drug_dosage 的多行并将它们合二为一,但我的输出中出现了括号和引号,我该如何将其取出?
1
更新:
我在示例中遇到错误,因为我正在尝试使用 str_replace 的解决方案和 preg_replace .我的问题是目标在 SQL 语句中,所以我怀疑这与错误有关,因为结果中还有其他数据
错误:
  Uncaught TypeError: Cannot use 'in' operator to search for 'length' in 
{"drug_code":"CFZU",
 "drug_name":"Cefazolin",
 "dosage_list":"[\"<=4 mg\/L\", \"<=3 mg\/L\"]"}, 
{"drug_code":"TZPD","drug_name":"Pip\/Tazobactam",
 "dosage_list":"[\"Pip\/Tazobactam\"]"}

最佳答案

你可以试试string_agg相反 JSON_AGG

public function fetchdrug(Request $search_drug){

$filter_drug = $search_drug->input('search_drug');
$all_drugs = HmsBbrKnowledgebaseDrug::selectRaw('DISTINCT ON (drug_code)
                                                drug_code,
                                                drug_name,
                                                string_agg(drug_dosage, ', ') AS dosage_list')
                            ->GroupBy('drug_code', 'drug_name')
                            ->orderBy('drug_code', 'ASC')
                            ->get();

return response()->json([
    'all_drugs'=>$all_drugs,
]);
}

关于sql - 删除 JSON_AGG(聚合函数)中的括号和引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68916011/

相关文章:

sql - 计算重叠日期范围的价格

php - 如何创建表并在其中插入数据,但如果已有同名表,则只需插入数据并且不再创建表

php - 在 Laravel 函数中调用多个返回函数

python - 定义 python apply 函数,它可以访问前一行的值并将它们用于计算

sql - Mysql:日期为字符串

php - 基于角色的登录

php - 使用 Laravel 对 JSON 字段进行不区分大小写的查询

mysql - Laravel - 具有关系多行的 SQL 查询

c++ - 在C++中传递函数类型的参数是什么意思?

javascript - 将变量整数传递给jquery函数?