Php 用concat替换mysql更新

Php 用concat替换mysql更新,php,mysql,replace,Php,Mysql,Replace,我的表保存相同的ID:1239901888,99 我需要在这个领域更改一些id 我正在使用我的sql:let 9901更改为2001 UPDATE `TALBE_` SET id_group = REPLACE (id_group, '9901', '2001'); 这就是工作 但是,我把99改为100 UPDATE `TALBE_` SET id_group = REPLACE (id_group, '99', '100'); 我的sql fidle已更改为 123,10001,888,1

我的表保存相同的ID:1239901888,99

我需要在这个领域更改一些id

我正在使用我的sql:let 9901更改为2001

UPDATE `TALBE_` SET id_group = REPLACE (id_group, '9901', '2001');
这就是工作

但是,我把99改为100

UPDATE `TALBE_` SET id_group = REPLACE (id_group, '99', '100');
我的sql fidle已更改为

123,10001,888,100

如何只改变99->100,不改变9901

我需要使用concat吗

但是我测试了一些时间仍然不能做到这一点

UPDATE `TALBE_` SET id_group = 
    trim(',' from REPLACE(concat(',', id_group, ','), ',99,', ',100,')); 
你可以用

UPDATE `TALBE_` SET id_group = 
    trim(',' from REPLACE(concat(',', id_group, ','), ',99,', ',100,')); 

她有一个版本,寻找一个数字来代替它

必须插入搜索值2次

SELECT CONCAT_WS (',',
      SUBSTRING_INDEX(id_group, ',', FIND_IN_SET('888',id_group)-1)
      ,'100',
      SUBSTRING_INDEX(id_group, ',', --1* (LENGTH(REGEXP_REPLACE(id_group,'[0-9]','')) -(FIND_IN_SET('888',id_group)-1)))
      );
样本

MariaDB [(none)]> SELECT CONCAT_WS (',',
    ->       SUBSTRING_INDEX('123,9901,888,99', ',', FIND_IN_SET('888','123,9901,888,99')-1)
    ->       ,'100',
    ->       SUBSTRING_INDEX('123,9901,888,99', ',', --1* (LENGTH(REGEXP_REPLACE('123,9901,888,99','[0-9]','')) -(FIND_IN_SET('888','123,9901,888,99')-1)))
    ->       );
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CONCAT_WS (',',
      SUBSTRING_INDEX('123,9901,888,99', ',', FIND_IN_SET('888','123,9901,888,99')-1)
      ,'100',
      SUBSTRING_INDEX('123,9901,888,99', ',', --1* (LENGTH(REGEXP_REPLACE('123,9901,888,99','[0-9]','')) -(FIND_IN_SET('888','123,9901,888,9 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 123,9901,100,123                                                                                                                                                                                                                                                 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]>

她有一个版本,寻找一个数字来代替它

必须插入搜索值2次

SELECT CONCAT_WS (',',
      SUBSTRING_INDEX(id_group, ',', FIND_IN_SET('888',id_group)-1)
      ,'100',
      SUBSTRING_INDEX(id_group, ',', --1* (LENGTH(REGEXP_REPLACE(id_group,'[0-9]','')) -(FIND_IN_SET('888',id_group)-1)))
      );
样本

MariaDB [(none)]> SELECT CONCAT_WS (',',
    ->       SUBSTRING_INDEX('123,9901,888,99', ',', FIND_IN_SET('888','123,9901,888,99')-1)
    ->       ,'100',
    ->       SUBSTRING_INDEX('123,9901,888,99', ',', --1* (LENGTH(REGEXP_REPLACE('123,9901,888,99','[0-9]','')) -(FIND_IN_SET('888','123,9901,888,99')-1)))
    ->       );
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CONCAT_WS (',',
      SUBSTRING_INDEX('123,9901,888,99', ',', FIND_IN_SET('888','123,9901,888,99')-1)
      ,'100',
      SUBSTRING_INDEX('123,9901,888,99', ',', --1* (LENGTH(REGEXP_REPLACE('123,9901,888,99','[0-9]','')) -(FIND_IN_SET('888','123,9901,888,9 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 123,9901,100,123                                                                                                                                                                                                                                                 |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]>

切勿在单个字段中存储多个值。更改表设计是解决此问题的唯一真正方法谢谢您的提醒,但是,迫切需要使用此sql我需要修改发生的系统请勿在单个字段中存储多个值。更改表设计是解决此问题的唯一真正方法谢谢您的提醒,但是,迫切需要使用此sql我需要修改系统谢谢,谢谢您让我知道我可以使用trim()谢谢,谢谢您让我知道我可以使用trim()谢谢