簡體   English   中英

要在mysql update Query中附加逗號分隔值,請不要重復

[英]To append comma separated value no duplicates in mysql update Query

我將表數據存儲為這樣的逗號分隔值

id    name       fk_id

1      abc       2,4,6
2       def      2,7,8

現在,我想在MySQL的Update Query中使用CASE WHEN或某些函數,如果沒有重復值,則更新字段:

例如,fk_id的相同值然后忽略其他更新,如果10為id 1然后更新,但如果7為id 2然后忽略

id    name       fk_id

1      abc       2,4,6,10
2       def      2,7,8

我嘗試了以下代碼:

if(
            find_in_set($fk_id,fk_id),
            fk_id, 
            CONCAT_WS(',', fk_id, $fk_id)
          )

但不行。

只需更新您的代碼即可

set fk_id = if(find_in_set($fk_id,fk_id),
            fk_id, 
            CONCAT(fk_id, ',', $fk_id)
          )

試試這個 :

$sql = "
UPDATE `test` 
SET `fk_id` = CONCAT(fk_id, ',','" . $fk_id . "') 
WHERE `fk_id` REGEXP ',?(" . $fk_id . "),?'
";

注意:在速度方面,REGEXP不是最佳選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM