使用此查询,我将在表中附加用户ID,但是它将以连续的形式插入,我想用分隔,请建议更改查询
DB::table('table_user_create_activity')
->where(['activity_id'=>$query_get_activity->activity_id])
->update(['accepted_join_id'=>DB::raw('CONCAT(ifnull(accepted_join_id,""),'.$get_user_id.')')]);
答案 0 :(得分:0)
问题出在您的DB::raw
SQL语句中。
您正在使用MySQL concat
,但该方法未添加分隔符。
要添加分隔符,请使用concat_ws
(ws =带分隔符),然后第一个参数是您的分隔符。
->update(['accepted_join_id'=>DB::raw("CONCAT_WS(',', ifnull(accepted_join_id,''),".$get_user_id.')')])
旁注,由于在$get_user_id
中添加了DB::raw
,因此您的查询已打开以进行sql注入。要关闭sql注入,请将其更改为以下内容。
->update(['accepted_join_id'=>DB::raw("CONCAT_WS(',', ifnull(accepted_join_id,''),?)", [$get_user_id])])
这样,我们先将用户ID逸出,然后再将其添加到查询中。
答案 1 :(得分:0)
希望这可以解决您的问题
DB::table('table_user_create_activity')
->where([ 'activity_id' => $query_get_activity->activity_id ])
->update([
'accepted_join_id' => DB::raw("CONCAT(ifnull(accepted_join_id,''), ',' , $get_user_id)")
]);
答案 2 :(得分:0)
DB :: table('table_user_create_activity')->其中([''activity_id'=> $ query_get_activity-> activity_id])->更新(['accepted_join_id'=> DB :: raw('CONCAT(ifnull(NULL ,accepted_join_id),'。$ get_user_id。')')]));