所以,我有这个表,我存储了一些用“,”分隔的数字。对我来说,可以像这样存储它们,因为当我回应它们时,我需要按照这个确切的顺序。
有没有什么方法可以在现有数字的末尾添加一些数字?
这是表格:
id | mat_id | note |
-----------------------------------
1 | 1 | 1,2,3,4 |
我希望,通过表单,能够在最后添加一个数字,如下所示:
id | mat_id | note |
-----------------------------------
1 | 1 | 1,2,3,4,5 |
我在谷歌上没有发现任何关于这样的事情......这将是非常有用的。非常感谢!
答案 0 :(得分:1)
UPDATE table SET note= CONCAT(note, ',5') WHERE id = 1
答案 1 :(得分:1)
在列中存储逗号分隔值通常不是一个好主意。但是,如果您真的无法更改数据库结构,则可以使用CONCAT_WS:
UPDATE tableName
SET note = CONCAT_WS(',', note, '5')
如果已经有一些数据,这将自动在注释后插入一个逗号,否则它只会添加字符串'5':
SELECT CONCAT_WS(',', '1,2,3,4', '5');
1,2,3,4,5
SELECT CONCAT_WS(',', NULL, '5');
5
当然,您需要确保不使用空字符串,否则会失败:
SELECT CONCAT_WS(',', '', '5');
,5
或者它会使查询复杂化一点:
UPDATE tableName
SET note = CONCAT_WS(',', CASE WHEN note<>'' THEN note END, '5')