2014-11-12 2 views
0

Столбец «путь» имеет значения, которые представлены в следующем формате:Как вставить изменить часть значения в столбце MySQL таблицы

http://helloworld.com/media/recordings/tape1.mp4 
http://helloworld.com/media/recordings/tape2.mkv 
http://helloworld.com/media/editing/tape2-a.mkv 

, как я могу добавить значение только часть названия файла URL-адреса? например - 20141010 (там будет только одна дата применяется ко всем значениям)

http://helloworld.com/media/recordings/20141010tape1.mp4 
http://helloworld.com/media/recordings/20141010tape2.mkv 
http://helloworld.com/media/editing/20141010tape2-a.mkv 

Может возможно использовать команду CONCAT, но я не знаю, как сказать это только вход предварительного заключения после того, как последний/

ответ

3
UPDATE table 
SET path = INSERT(path, LENGTH(path) - LOCATE('/', REVERSE(path)) + 2, 0, '201410110'); 

См. String Functions для документации всех этих функций, которые используются для обработки строк.

+0

'SUBSTRING_INDEX (путь, '/', -1) + 1 кажется лучше, чем' LENGTH (path) - LOCATE ('/', REVERSE (path)) + 2'. – akagroundhog

+0

Вам нужно дважды вызвать 'SUBSTRING_INDEX', один раз, чтобы получить первую часть, другую, чтобы получить последнюю часть, а затем выполнить ее с помощью строки даты. Я думаю, что результат более сложный. Но, может быть, я в замешательстве, поэтому не стесняйтесь публиковать ответ, который показывает, как это сделать. – Barmar

+0

Почему? 'UPDATE table SET path = INSERT (путь, SUBSTRING_INDEX (путь, '/', -1) + 1, 0, '201410110');' должен работать. – akagroundhog