如何删除 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`)
如何删除逗号分隔的字符串“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`)