如何删除 MySQL 中逗号分隔的记录字符串?

How to remove comma separated string of records in MySQL?

如何删除逗号分隔的字符串“0000-00-00”

  ID      Name   Return Date
   1       A     0000-00-00,2016-02-1,2016-1-15
   2       B     0000-00-00,2016-04-1
   3       c     0000-00-00,2016-04-4

期待答案

  ID      Name   Return Date
   1       A     2016-02-1,2016-1-15
   2       B     2016-04-1
   3       c     2016-04-4

认为你有 3 种情况:0000-00-00左边、右边和中间的字符串:

+------+------+--------------------------------+
| ID   | Name | Return Date                    |
+------+------+--------------------------------+
|    1 | A    | 0000-00-00,2016-02-1,2016-1-15 |
|    2 | B    | 0000-00-00,2016-04-1           |
|    3 | C    | 0000-00-00,2016-04-4           |
+------+------+--------------------------------+

使用REPLACE函数:

SELECT `Return Date`, REPLACE(`Return Date`,'0000-00-00,','') as replaced
FROM YourTable;

+--------------------------------+----------------------+
| Return Date                    | replaced             |
+--------------------------------+----------------------+
| 0000-00-00,2016-02-1,2016-1-15 | 2016-02-1,2016-1-15  |
| 0000-00-00,2016-04-1           | 2016-04-1            |
| 0000-00-00,2016-04-4           | 2016-04-4            |
+--------------------------------+----------------------+

您的更新语句为:

UPDATE YourTable
SET `Return Date` = REPLACE(`Return Date`,'0000-00-00,','') 
WHERE `Return Date` like '%0000-00-00,%';

您必须对其他情况进行类似的查询,例如中间或右侧的 '0000-00-00'

您也可以试试这个来替换其他任何位置的值:

Values may be:
+------------------------------+
0000-00-00,2016-02-1,2016-1-15 
2016-02-1,0000-00-00,2016-1-15 
2016-02-1,2016-1-15,0000-00-00
0000-00-00
+------------------------------+

UPDATE YourTable
SET `Return Date` = TRIM(BOTH ',' FROM
      REPLACE(
        REPLACE(CONCAT(',',REPLACE(`Return Date`, ',', ',,'), ','),',0000-00-00,', ''), ',,', ',')
    )
WHERE FIND_IN_SET('0000-00-00', `Return Date`)