Mysql Обновление содержимого поля - PullRequest
2 голосов
/ 23 декабря 2009

Я сейчас пытаюсь отредактировать свою базу данных с именем boh. В текущей таблице «files» есть поле с именем «path». Внутри поля path находится фактический путь к файлам, перечисленным в папке, синтаксис "F: \ xxx \ xxx \ xxx \ filename.xxx". Как обновить информацию о поле, чтобы заменить «F: \ xxx \ xxx \ xxx», чтобы существовало только имя файла?

Ответы [ 4 ]

3 голосов
/ 23 декабря 2009

Это зависит от того, что именно вы хотите, если вы хотите удалить постоянный путь, вы можете использовать:

UPDATE `table` SET `path` = REPLACE(`path`, 'F:\\xxx\\xxx\\xxx', '');

Если вы хотите сохранить только последнюю часть после последней \, то следующая команда должна сделать это:

UPDATE `table` SET `path` = SUBSTRING_INDEX(`path`. '\\', -1);
1 голос
/ 23 декабря 2009
0 голосов
/ 23 декабря 2009

Предполагая, что 'F: \ xxx \ xxx \ xxx \' не является константой, вы можете попробовать выражение вроде этого:

UPDATE files SET path = REVERSE(SUBSTR(REVERSE(path), 1, LOCATE(REVERSE(path), '\')));
0 голосов
/ 23 декабря 2009
UPDATE files
SET path = REPLACE(path, 'F:\xxx\xxx\xxx\', '')
WHERE path LIKE = 'F:\xxx\xxx\xxx\%'

Эти массивные обновления очень легко испортить ваши данные, поэтому убедитесь, что вы:

  • Попробуйте сначала с предложением SELECT
  • Резервное копирование ваших данных
...