如何删除逗号分隔的字符串" 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
答案 0 :(得分:1)
认为你有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'
等其他案例进行类似的查询。
答案 1 :(得分:1)
你也可以尝试用这个替换任何其他位置的值:
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`)