2013-05-08 18 views
1

我有一个名为的用户表,其中SET类型字段的名称为privs。 该字段的允许值为:'ADD','编辑','删除','全部'。如何在mysql中为SET字段添加值?

我应该执行什么SQL查询来添加让我们说'值编辑'字段privs给定的行?但是,只有在没有这种价值的情况下。

编辑:

我尝试: 更新用户设置 PRIVS = CONCAT(PRIVS, '编辑')

但我得到一个错误: 数据被截断为列 'PRIVS' 在row 1/

之后,并非所有行都在其priv字段中包含EDIT值。

+0

添加唯一约束PRIVS领域,它不会允许重复条目 – Sudz 2013-05-08 11:35:18

+0

我不是说不同的行中重复。 – JohnM2 2013-05-08 11:50:01

回答

3

看起来像MySQL可以添加第二个EDIT。它,然而,需求这个列表是正确的逗号分隔:

update user 
set  privs = concat(privs, if(length(privs)>0,',',''), 'EDIT') 
where id = 42 

Example at SQL Fiddle.

相关问题