是否使用CONCAT函数更新mysql字段?
我需要一个简单的查询,用它的值更新mysql字段,并进行一些修改,例如,如果字段有值(3,4,5),我可以添加(,6),以防它有值,如果它为NULL,则用“,”更新字段 我搜索了web,找到了名为CONCAT的mysql函数,它返回连接参数后得到的字符串 我试过这个,但没用是否使用CONCAT函数更新mysql字段?,mysql,sql,Mysql,Sql,我需要一个简单的查询,用它的值更新mysql字段,并进行一些修改,例如,如果字段有值(3,4,5),我可以添加(,6),以防它有值,如果它为NULL,则用“,”更新字段 我搜索了web,找到了名为CONCAT的mysql函数,它返回连接参数后得到的字符串 我试过这个,但没用 UPDATE groups SET SubsID = CONCAT(SubsID,",5") WHERE GroupID = 2 它不返回问题,但0行受影响,字段未更新 UPDATE groups SET SubsID
UPDATE groups SET SubsID = CONCAT(SubsID,",5") WHERE GroupID = 2
它不返回问题,但0行受影响,字段未更新
UPDATE groups
SET SubsID = CONCAT(COALESCE(SubsID,''),",5")
WHERE GroupID = 2
连接前添加
UPDATE groups
SET SubsID = CONCAT(COALESCE(SubsID,''),",5")
WHERE GroupID = 2
关系数据库中的CSV数据是一个糟糕的想法。相反,您应该使用来存储
组
和子组
之间的多对多关系
比如说
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);
关系数据库中的CSV数据是一个糟糕的想法。相反,您应该使用来存储
组
和子组
之间的多对多关系
比如说
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);
查询错误。请尝试下面的查询
UPDATE groups SET SubsID = CONCAT(SubsID,',5') WHERE GroupID = 2;
并确保groupid 2存在查询错误。请尝试下面的方法
UPDATE groups SET SubsID = CONCAT(SubsID,',5') WHERE GroupID = 2;
UPDATE GROUPS
SET SubsID = CASE WHEN SubsID IS NULL THEN '6'
ELSE CONCAT(SubsID, ',6')
END
WHERE GroupID = 2
确保groupid 2存在很好,但是当该字段为空时,它仍然添加逗号。我只想在该字段不为空的情况下添加逗号。否则,我只想在没有逗号的情况下添加数字。但是当该字段为空时,它仍然添加逗号。我只想在该字段不为空的情况下添加逗号。否则,我想添加数字只有在没有逗号的情况下,你所改变的是在这种情况下没有区别的引号。你所改变的是在这种情况下没有区别的引号
UPDATE GROUPS
SET SubsID = CASE WHEN SubsID IS NULL THEN '6'
ELSE CONCAT(SubsID, ',6')
END
WHERE GroupID = 2