【发布时间】:2018-11-20 18:27:06
【问题描述】:
我有一个 MySQL 数据库,其中有一个名为 customers 的表。在此表中,有一个名为 preferences 的字段,其内容是名称列表,可以是单个名称,也可以是组合名称。
表客户:
id name preferences
---------------------------------
1 John pears,tomato sauce,bread
2 Rose carrot cake, salad
我可以轻松地在字段首选项中添加一个新条目,执行以下操作:
UPDATE `customers`
SET preferences = CONCAT(preferences,',oranges')
WHERE id=2
但现在,我想知道是否有一种简单的方法可以删除该列表中的已知项目,这并不意味着读回注册表项,使用 PHP 处理并再次保存。
我尝试使用REGEX_REPLACE 失败了,因为这个词可以在开头、中间或结尾。所以我没有成功写出一个合适的表达式来代替结果。无论如何,正则表达式可能不是正确的方法。
谢谢
【问题讨论】:
-
最佳答案是规范列首选项
-
规范化是什么意思?
-
列表严格用逗号分隔?
-
您可能想阅读normal form。它会让你在这段时间里减少很多头痛。
-
是的,列表严格用逗号分隔:单词中不会使用逗号