我有查询的新问题:
我想根据 id 使用一些新数据更新列“column”:
UPDATE table SET column = CASE
WHEN id = 2 THEN CONCAT(`column`, ',7')
WHEN id = 3 THEN CONCAT(`column`, ',10')
ELSE column
END;
不幸的是,向列添加新值必须以逗号开头,因为列将数据存储为逗号分隔值。例如,它看起来像这样:
id | column
-------------
2 | 3, 1, 20
3 | 1, 5
执行查询后,我得到:
id | column
-------------
2 | 3, 1, 20, 7
3 | 1, 5, 10
到目前为止一切都很好。不幸的是,如果我更新为空的列,它都以逗号开头,它看起来像这样:
id | column
-------------
2 | ,7
3 | ,10
从数据库中获取数据时会导致一些问题,因为当我explode()它时,它会使第一个数组值为空。我想在更新表格时删除这样的第一个逗号。我想我应该做一些'if'语句来检查'column'的长度(使用char_length),如果它是空的更新而没有首先,以逗号开头。你能帮我正确的语法吗?
摘要:如果存在“列”,如何使用以逗号开头的值进行更新列的正确查询。如果 'column' 为空,则使用变量更新它而不用逗号开头。