可以在mysql数据的末尾添加一个值吗?

时间:2013-09-18 22:41:53

标签: php mysql sql forms

所以,我有这个表,我存储了一些用“,”分隔的数字。对我来说,可以像这样存储它们,因为当我回应它们时,我需要按照这个确切的顺序。

有没有什么方法可以在现有数字的末尾添加一些数字?

这是表格:

id | mat_id     | note            |
-----------------------------------
1  | 1          | 1,2,3,4         |

我希望,通过表单,能够在最后添加一个数字,如下所示:

id | mat_id     | note            |
-----------------------------------
1  | 1          | 1,2,3,4,5       | 

我在谷歌上没有发现任何关于这样的事情......这将是非常有用的。非常感谢!

2 个答案:

答案 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')