MYSQL:重复更新时插入-获取当前列值

MYSQL:重复更新时插入-获取当前列值,mysql,Mysql,我想访问“重复更新时”列的当前值 例如,我有一个具有以下结构的表: unique_param value test test_value unique param是唯一的索引 查询是 INSERT INTO `test` (`unique_param`, `value`) values ('test', 'test_value1') ON DUPLICATE KEY UPDATE value = concat(VALUES(value), ",", value) 但我的查询不起

我想访问“重复更新时”列的当前值

例如,我有一个具有以下结构的表:

unique_param value
test        test_value
unique param是唯一的索引

查询是

INSERT INTO `test` (`unique_param`, `value`) values ('test', 'test_value1') ON DUPLICATE KEY UPDATE value = concat(VALUES(value), ",", value)
但我的查询不起作用,似乎无法访问当前列,所以查询后的值为“test\u value1,”

我预期的结果是:

unique_param value
test        test_value1,test_value
升级: 根据Gordon的回答,我的查询很好,如果需要,有人可以使用它。我刚刚在表定义中出错。

您的代码可以正常工作

您只需要插入一个重复的密钥。列的名称不算作重复项


顺便说一句,将东西存储在逗号分隔的列表中几乎总是一个坏主意。使用单独的连接表。

值在那里做什么@endVALUES(value)获取我尝试插入的“value”,即test_value1。所以,我希望最终结果是:“我尝试插入+”、“+现有列中的值,即“test_value1”+”、“+”test_value“谢谢,是的,我的代码可以工作:)我的错误是在本地服务器上的表定义中,而不是在查询中。顺便说一下,我希望在我的示例中存储逗号删除列表是可以的,因为我不使用它进行过滤,也不想在这个“值”字段上建立索引