我找不到删除varchar列中存储的ID之一的方法。

id         fieldid
1          ,5,13,15,66,443,


我该如何删除,可以说这个字段ID为15?

最佳答案

正确的逻辑是:

UPDATE <your_table_name>
    SET fieldid = REPLACE(fieldid, ',15,', ',')
---------------------------------------^----^ these commas a really important
    WHERE id = 1;


但是,在SQL中存储字符串数列表是不好的,不好的,不好的:


数字应声明为数字,而不是字符串。
外键关系应明确声明。
SQL具有糟糕的字符串处理功能。
字符串列表中的查询无法优化。
还有更多原因。


有时,您会陷入别人的非常非常糟糕的设计决策中。

10-07 19:06