我参与了一个项目,遇到了别人设计的不好,我们有一个表叫任务,每个任务有很多用户,任务表如下:
+----------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------+------+-----+---------+-------+
| id | varchar(40) | NO | PRI | NULL | |
| name | varchar(100) | YES | | NULL | |
| task_users | varchar(1000) | YES | | NULL | |
并且用户存储aaa,bbb,ccc
在task_users
列中,这意味着将许多用户ID放入一列,我知道这是一个非常糟糕的设计,但由于它是一个旧项目,我无法修改表格设计。
现在我有一个问题,如果用户被删除,我怎样才能将其从task_users
列中删除?
用户 id 是由 UUID 生成的,它是 32 个字符的固定长度,所以每个用户 id 都是唯一的,例如40cf5f01eb2f4d2c954412f27b3bf6eb
,但问题是用户 id 可能出现在task_users
列的任何位置,所以我不知道如何去掉它
aaa,40cf5f01eb2f4d2c954412f27b3bf6eb,bbb -- in center
40cf5f01eb2f4d2c954412f27b3bf6eb,aaa,bbb -- in head
aaa,bbb,40cf5f01eb2f4d2c954412f27b3bf6eb -- in end
当删除用户 id 时,更新的结果就像
aaa,bbb
我想知道我们可以使用一个更新 sql 来删除指定的用户 id 并仍然保持相同的数据格式吗?
注意:我是在 MySQL 存储过程中做的,附加变量可能会有所帮助,但我还是想只使用一个 sql 来做,MySQL 版本是5.0
提前致谢!