如果值不为null,Laravel将DB::Raw与Concat一起使用



我需要在Laravel Update查询中连接值。如果Id值是12,如果我需要在它后面加14,它应该是12,14。如果Id值为null,那么它应该加14,而不是14

$inscustrec =DB::table('configure')->where('POST_ID', $request->postid)
->update(
[
'ID' => DB::raw('CONCAT(COALESCE(ID),",'. $insrec.'")')
]);

如果ID值为null,我将使用逗号作为第一个字符。

我尝试了以下代码,

$inscustrec =DB::table('configure')->where('POST_ID', $request->postid)
->update(
[
'ID' => trim(DB::raw('CONCAT(COALESCE(ID),",'. $insrec.'")'),",")
]);

但是这个代码不起作用。

如有任何帮助,我们将不胜感激。

试试这个(不确定你的SQL变体,我的例子是使用MySQL(:

$inscustrec = DB::table('configure')->where('POST_ID', $request->postid)
->update([
'ID' => trim(DB::raw('CONCAT_WS(",", COALESCE(ID, "'. $insrec.'"))'))
]);

希望$insrec不来自用户输入,因为它直接插入到SQL中。

最新更新