我需要一个简单的查询,用它的值更新mysql字段并进行一些修改,例如,如果字段有值(3,4,5)我可以添加(,6),这只是为了防止它有值,如果它的NULL然后使用“,”
更新字段我搜索了网页并找到了名为CONCAT的mysql函数,它返回了连接参数产生的字符串。
我尝试了这个,但这不起作用
UPDATE groups SET SubsID = CONCAT(SubsID,",5") WHERE GroupID = 2
它返回没有问题但受影响的0行和字段未更新
答案 0 :(得分:2)
UPDATE GROUPS
SET SubsID = CASE WHEN SubsID IS NULL THEN '6'
ELSE CONCAT(SubsID, ',6')
END
WHERE GroupID = 2
答案 1 :(得分:1)
答案 2 :(得分:0)
关系数据库中的CSV数据是一个糟糕的主意。相反,您应该使用junction table来存储groups
和subs
之间的多对多关系。
例如
CREATE TABLE group_to_sub (
`GroupID` INT NOT NULL REFERENCES `groups` (`GroupID`),
`SubID` INT NOT NULL REFERENCES `subs` (`SubID`),
PRIMARY KEY (`GroupID`, `SubID`)
) ENGINE innodb;
INSERT INTO group_to_sub (GroupID, SubID) VALUES (2, 5);
答案 3 :(得分:-2)
查询错误。请尝试以下
UPDATE groups SET SubsID = CONCAT(SubsID,',5') WHERE GroupID = 2;
确保groupid 2存在