gpt4 book ai didi

mysql - 如何在列mysql中已有的值之后插入一个值

转载 作者:行者123 更新时间:2023-11-29 05:30:08 24 4
gpt4 key购买 nike

在我的用户表中,我有一个 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
)

基本上,我想做的是..我正在努力做到这一点,如果他们的用户 ID 是 () 中列出的用户 ID 之一,那么查询会将“,100”添加到列 membergroupids。
然而,事情是这样的。所有这些用户都已在 membergroupids 中列出了值。
例如,用户 312 在 membergroupids 列中已有这些值:
35,49,58,61,71,38,59
因此,此查询需要对他的字段执行此操作:
35,49,58,61,71,38,59,100

..以及列出的所有其他用户 ID。

如果有人能帮助我,谢谢。我确定这是在谷歌上,但我不知道如何表达。

最佳答案

由于您处于无法更改架构的不幸位置,您可以通过 CONCAT()

将其连接到现有值来添加值
UPDATE `user` SET `membergroupids` = CONCAT(`membergroupids`, ',100') WHERE...

这将强制 ,100每个 用户,即使他们当前有一个空的 membergroupids。要考虑空值,您可以使用 CASE 条件:

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 ...

在理想情况下,用户 <--> 组成员身份将通过适当的多对多关系处理,其中第三个表用于将用户分配到组,有两列:userid, groupid.

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com