Как составить запрос на изменение подстроки?

Тема в разделе "Базы Данных", создана пользователем zek24, 7 май 2013.

  1. zek24

    zek24

    Регистрация:
    10 ноя 2012
    Сообщения:
    162
    Симпатии:
    23
    Привет
    требуется в одном столбце заменить подстроку на другую.
    Уже давно не пользовался SQL - подзабыл. В нете нашел похожее решение, но оно затрагивает только первую строку.
    UPDATE model SET model_name = REPLACE(model_name, 'Touring', 'Универсал');
    Как его "направить" на все строки?
    ...
    пробовал дописать WHERE id > 0 - не помогло
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    Без условия ( WHERE ), обновит все поля.

    Например, UPDATE users SET name = "noname";

    и у всех пользователей станет имя noname


    проверь запрос, может он просто не подходит где-то по условию replace
     
    zek24 нравится это.
  3. zek24

    zek24

    Регистрация:
    10 ноя 2012
    Сообщения:
    162
    Симпатии:
    23
    Мне не нужно заменять весь текст, а только подстроку
    если конкретнее, то есть колонка image в ней сейчас строки типа
    data/foto_name1.jpg
    data/foto_name2.jpg
    data/foto_name3.jpg...
    Сейчас возникла необходимость все фото перенести в новую папку data/new/
    должно полуиться
    data/new/foto_name1.jpg
    data/new/foto_name2.jpg
    data/new/foto_name3.jpg...
    Составил запрос
    Код:
    UPDATE product SET image = REPLACE(image, 'data/', 'data/new/')
    WHERE  id > 0
    Заменяет только первую строку....
    Могу написать на php "перебор массива с image", но хотелось бы чисто на sql.
     
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    WHERE убери
     
  5. zek24

    zek24

    Регистрация:
    10 ноя 2012
    Сообщения:
    162
    Симпатии:
    23
    Не то - ошибка
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id > 0' at line 2
    Как я помню, когда проходил sql, то WHERE все же необходим...
    Код:
    UPDATE product SET image = REPLACE(image, 'data/', 'data/new/')
    выдало Затронуто 0 строк
    Запросы пишу в phpmyAdmin в поле SQL (для информации, может тут что не так)

    Разобрались, дела оказалось в кавычках... :mad:
    Код:
    UPDATE `product` SET image = REPLACE(`image`, 'data/', 'data/new/')