Php MYSQL逗号分隔列表,可以添加和删除值吗?
我有一个逗号分隔的列表,我将它存储在mysql表的varchar字段中Php MYSQL逗号分隔列表,可以添加和删除值吗?,php,mysql,Php,Mysql,我有一个逗号分隔的列表,我将它存储在mysql表的varchar字段中 是否可以使用sql查询直接从列表中添加和删除值?或者我必须从表中取出数据,在PHP中进行操作并将其替换回mysql吗?在mysql的InnoDB和MyIsam引擎中无法做到这一点。可能在其他引擎中(请检查CSV引擎)。 您可以在存储过程中执行此操作,但不推荐这样做。 要解决这样的问题,您应该做的是重构代码并规范化DB=> 原始表格 T1: id | data | some_other_d
是否可以使用sql查询直接从列表中添加和删除值?或者我必须从表中取出数据,在PHP中进行操作并将其替换回mysql吗?在mysql的InnoDB和MyIsam引擎中无法做到这一点。可能在其他引擎中(请检查CSV引擎)。
您可以在存储过程中执行此操作,但不推荐这样做。
要解决这样的问题,您应该做的是重构代码并规范化DB=>
原始表格
T1: id | data | some_other_data
1 | gg,jj,ss,ee,tt,hh | abanibi
成为:
T1: id | some_other_data
1 | abanibi
T2: id | t1_id | data_piece
1 | 1 | gg
2 | 1 | jj
3 | 1 | ss
4 | 1 | ee
5 | 1 | tt
6 | 1 | hh
如果数据块在系统中是一个常数值,并且被大量重用,那么您也需要在那里添加一个查找表
我知道这看起来需要更多的工作,但它会像现在一样为您节省问题,而这些问题需要更多的时间来解决。现在您了解了规范化的重要性。您在做什么-您是否正在尝试编写自己的小数据库。。。在SQL中,您能否更具体地说明如何操作此字符串?是否确实需要将字符串存储到此表中?这是一种非常糟糕的做法,除非你正在做一些像预计算信息这样的事情,而你不能为用户实时地做这些事情