在用户表中,我有一个userid列和membergroupids列。
这是我到目前为止的问题。

UPDATE `user`
SET `membergroupids`=`,100`
WHERE `userid` IN
(
  312 , 331 , 538 , 528 , 77 , 80 , 293 , 343 , 609 , 607 , 547 , 596 , 216 ,
  780 , 1 , 884 , 430 , 500 , 881 , 952 , 957 , 979 , 352 , 994 , 955 , 776 ,
  744 , 904 , 1038 , 76 , 1083 , 61 , 202 , 1001 , 1173 , 1176 , 418 , 770 ,
  1192 , 191 , 1211 , 1206 , 1247 , 402 , 423 , 584 , 1233.1282 , 167 , 1329,
  1330 , 376 , 1227 , 146 , 1113 , 1327 , 1352 , 254 , 1065 , 1406 , 1225 ,
  1230 , 1405 , 1443 , 812 , 1295 , 1510 , 1571 , 1565 , 1468 , 1349 , 1645 ,
  501 , 1312 , 1718 , 13 , 200 , 1177 , 1785 , 107 , 540 , 1591 , 1508 , 59 ,
  1867 , 222 , 1520 , 782 , 26 , 332 , 474 , 1837 , 1828 , 1431 , 1951 , 1953 ,
  1950 , 847 , 1477 , 1726 , 1669 , 1185 , 1955 , 1872 , 1926 , 1392 , 853 ,
  1892 , 2020 , 1511 , 2027 , 2197 , 2184 , 2134 , 2239 , 119 , 122
)

所以基本上,我想做的是。。我正在尝试这样做,如果列membergroupids的用户id是()中列出的用户id之一,那么查询将向列membergroupids添加“.100”。
然而,事情是这样的。所有这些用户都已在membergroupid中列出了值。
例如,用户312已经在列membergroupid中具有这些值:
35、49、58、61、71、38、59
所以,这个查询需要对他的字段执行以下操作:
35,49,58,61,71,38,59100个
…以及列出的所有其他用户ID。
如果有人能帮我,谢谢。我确定这是在谷歌上,但我不知道怎么说。

最佳答案

由于您处于无法更改模式的不利位置,因此可以通过“cc>”将其添加到现有值上,从而添加该值。

UPDATE `user` SET `membergroupids` = CONCAT(`membergroupids`, ',100') WHERE...

这将强制每个用户使用CONCAT(),即使他们当前有一个空的,100。要解释空的,可以使用membergroupids条件:
UPDATE `users`
SET `membergroupids` =
  /* Concatenate ,100 onto the non-empty ones */
  CASE WHEN `membergroupids` IS NOT NULL AND `membergoupids` <> ''
    THEN CONCAT(`membergroupds`, ',100')
  /* And set the empty ones to just 100 (no comma) */
  ELSE '100'
  END
WHERE ...

在理想情况下,用户组成员资格将使用适当的多对多关系进行处理,其中第三个表用于将用户分配给组,有两列:CASE

关于mysql - 如何在mysql列中的值后插入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15719540/

10-08 22:54