php - 如果值不为空,Laravel 将 DB::Raw 与 Concat 一起使用
问题描述
我需要在 Laravel 更新查询中连接值。如果 Id 值为 12,如果我需要将 14 附加到它,它应该是 12,14。如果 ID 值为空,那么它应该附加为 14 而不是 ,14。我使用了以下代码,
$inscustrec =DB::table('configure')->where('POST_ID', $request->postid)
->update(
[
'ID' => DB::raw('CONCAT(COALESCE(ID),",'. $insrec.'")')
]);
如果 ID 值为空,我将逗号作为第一个字符。
我尝试了以下代码,
$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 中。
推荐阅读
- c - 操作系统:在中断被阻塞的情况下切换到另一个进程不是错误的做法吗?
- ios - 下载图像后触发collectionView重新加载的完成处理程序-Xcode [SWIFT]
- android - 在android中将时间戳转换为当前小时和分钟
- google-bigquery - 将数据从 RDBMS 加载到 Bigquery
- html - 如何将线性渐变添加到垂直 SVG 线
- c# - 想要使用 C# 在 Azure DevOps 中根据功能标题获取功能详细信息以获取工作项类型功能
- javascript - Chrome 中重复获取 URL 的代码段不起作用
- c++ - C++ 你能设计一个将指针保存在连续内存中并且不会使它们无效的数据结构吗?
- java - 如果升级 sqlite 版本,如何保留旧数据?
- python - 在python中计算点的导数