думаю, у вас есть 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'
в середине или вправо.
это струны. вы используете стандартные операции/функции строки: http://dev.mysql.com/doc/refman/5.7/en/string-functions.html И если ваша БД была правильно нормализована, вам не нужно будет задавать этот вопрос. это будет простой запрос 'delete ... where date = '0000-00-00''. –
'SUBSTRING (\' Return Date \ 'FROM 11);' –
Настоящим решением является НЕ хранить несколько значений в одном столбце! –