1

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

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

这是表格:

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

我希望通过一个表格,能够在末尾添加一个数字,如下所示:

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

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

4

2 回答 2

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')
于 2013-09-18T22:51:07.023 回答
1
UPDATE table SET note= CONCAT(note, ',5') WHERE id = 1
于 2013-09-18T22:43:53.217 回答