Rid*_*ari 11 mysql database database-design
我有一个值表,其中一列是SET类型.
如果它当前有成员('a','b','c','d'),如何在可能的值中添加"e"?
我意识到使用SET类型有点奇怪,我不清楚为什么会使用它而不是外键到另一个表的值集合,但我没有设计有问题的数据库,并且可以不要那么改变.
谢谢你的帮助!
更新:我想更新所有行的SET类型,而不只是一个,如果有帮助的话.
要向现有SET添加元素,请使用CONCAT()函数将新元素添加到逗号分隔列表中.要使用十进制值,我们可以使用按位OR运算符|.
UPDATE set_test SET myset = CONCAT(myset,",Travel")
WHERE rowid = 3;
Run Code Online (Sandbox Code Playgroud)
要么
UPDATE set_test SET myset = myset | 1 WHERE rowid = 3;
Run Code Online (Sandbox Code Playgroud)
您还可以使用CONCAT_WS()函数,它为我们处理列表分隔符:
UPDATE set_test SET myset = CONCAT_WS(',',myset,'Dancing')
WHERE rowid = 6;
Run Code Online (Sandbox Code Playgroud)
您想要将"e"添加到该设置字段中的允许值,或者它已经存在,并且您想要将"e"添加到该表中设置字段的当前值?
如果它不是一个允许的值,那么你将不得不做一个ALTER TABLE并重新定义字段:
ALTER TABLE set_test CHANGE myset myset SET('a','b','c','d','e');
Run Code Online (Sandbox Code Playgroud)
(是的,'myset'被放在那里两次,这是一个"当前名称新名称"的东西.)
否则只需执行UPDATE TABLE,并将字段与'e'连接,如前面的答案所示.
| 归档时间: |
|
| 查看次数: |
9468 次 |
| 最近记录: |