Есть MySQL табличка — Songs, в ней столбец — Filename со значениями вроде «CustomFolder/BlahBlah/Track.mp3».
Сейчас необходимо изменить структуру каталога на сервере и, соответственно, поправить пути к файлам, которых несколько тысяч.

Можно-ли запросом добавить «NewFolder» к «CustomFolder/BlahBlah/Track.mp3», чтобы получилось «NewFolder/CustomFolder/BlahBlah…»

Linux Nix Web Development - http://linuxoids.org/ размер 420x228, 27.83 kb

Tagged with →  

31 Responses to Есть MySQL табличка — Songs, в ней столбец — Filename со значениями вроде "CustomFolder/BlahBlah/Track.

  1. HabNo:

    update Songs set Filename = concat(‘NewFolder/’, Filename)?

  2. LopYes:

    полностью с вами согласен

  3. EegLt:

    первое что пришло в голову
    update Songs SET filename = CONCAT(‘newfolder/’,`filename`);

    попробуй, сам ни разу не пробовал)

  4. SplSpb:

    в общем-то коротеньким запросом все решается update table_name set filename = concat(‘newfolder/’,filename);

  5. SplSpb:

    да, долго я кофе пил… но хоть все сошлись в запросе

  6. Htogreen:

    UPDATE `Songs` SET `Filename` = CONCAT(«NewFolder/», `Filename`);
    нет?

  7. HabNo:

    не, тут скорее такой запрос надо:
    UPDATE `Songs` SET `Filename` = CONCAT(«NewFolder/», `Filename`);

  8. 01pSpb:

    хотя, если подумать, мой способ, всё же, несколько оптимальнее вашего

  9. DraSnow:

    Ай молодцы! Спасибо большое! Все получилось

  10. DraSnow:

    вот этот сработал, другие не пробовал

  11. SisYes:

    а в следующий раз попробуй вот так:
    UPDATE `Songs` SET `Filename` = CONCAT(«NewFolder/», `Filename`);

  12. DraSnow:

    у меня сработало и без кавычек. Или так правильнее?

  13. Kr0Blank:

    без кавычек срабатывает только один раз

  14. DraSnow:

    почему так?

  15. Kr0Blank:

    ну а как иначе-то?

  16. TnaAll:

    Попробую соригинальничать.

    UPDATE `Songs` SET `Filename` = CONCAT_WS(«/», «NewFolder», `Filename`);

  17. Ycihlam:

    дополню:
    UPDATE `Songs` SET `Filename` = CONCAT_WS(«/», «NewFolder», `Filename`);

  18. Xuagreen:

    Есть ещё вариант — использовать UPDATE с функцией CONCAT. Мне нравится!

  19. Sater:

    можно и скрипт миграции написать на каком языке.. вот лодыри.. абы база за них всё делала..

  20. DraSnow:

    ДА ВЫ ЖЕ МЕНЯ ЗАТРОЛЕЛИ!

  21. Smkin:

    Двойные кавычки в ANSI используются как раз для указания схем, таблиц, полей, алиасов, а строковые литералы ограничиваются одинарными

  22. OHASpb:

    Обязательно попробуй и остальные.

  23. DraSnow:

    у меня сегодня свободный вечер, я возьму тюбик клея, пакет и в уютной обстановке перепробую все, что мне тут насоветовали

  24. T-xaTa:

    ну и чтоб уж совсем круто:

    begin;
    UPDATE `Songs` SET `Filename` = CONCAT_WS(«/», «NewFolder», `Filename`) where `Filename` not like (‘NewFolder%’);
    commit;

  25. Yksin:

    Alex-T: Я бы лучше засунул всю логику в триггер на UPDATE, и делал бы просто UPDATE `Songs` SET `Filename` = NULL.

  26. DraSnow:

    Alex-T: ну мне всего один раз нужно было провернуть подобное, в дальшейшем все будет писаться уже правильно

  27. Yksin:

    История идёт по спирали, чувак.

  28. Yksin:

    Это без одинарных. Без двойных — два раза.

  29. GmaMsk:

    попробуй функцию concat

  30. DraSnow:

    думаешь, стоит?

Добавить комментарий