Помогите составить sql запрос

Тема в разделе "Базы данных", создана пользователем Юрий73, 1 апр 2017.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Юрий73

    Юрий73 Постоялец

    Регистр.:
    6 янв 2015
    Сообщения:
    92
    Симпатии:
    83
    Как составить один длинный групповой запрос :
    В базе данных infoot_pres6 в таблице ps_category_lang заменить
    в cтроках где id_shop = 6 строковые данные 'магазинеMoskow' на 'магазине cheboksary' , 'Москве' на 'Чебоксарах' , 'Moskow' на 'cheboksary'
    далее
    в cтроках где id_shop = 7 строковые данные 'магазинеMoskow' на 'магазине aprelevka' , 'Москве' на 'Апрелевке' , 'Moskow' на 'aprelevka'
    и так далее ....
     
  2. Цукер

    Цукер Сам себе призедент

    Moderator
    Регистр.:
    5 мар 2008
    Сообщения:
    415
    Симпатии:
    378
    Вот не чего не понятно если честно. Возьми кусок таблички и покажи на реальной таблице что ты в итоге хочешь видеть.
     
  3. Юрий73

    Юрий73 Постоялец

    Регистр.:
    6 янв 2015
    Сообщения:
    92
    Симпатии:
    83
  4. E6yH

    E6yH Создатель

    Регистр.:
    9 окт 2016
    Сообщения:
    13
    Симпатии:
    8
    Самый простой вариант это выполнить пару запросов подставляя разные слова.
    Код:
    UPDATE ps_category_lang
    SET meta_title = REPLACE(meta_title, 'Moscow', 'Cheboksary')
    where id_shop = 6;
    А потом проверить не осталось ли слов "Москва" и "Moscow" в строках запросом типа этого на случай если упустил что, либо с регистром что осталось:
    Код:
    select * from PS_CATEGORY_LANG
    where id_shop = 6
        and  meta_title LIKE '%moscow%'
        or meta_title like '%москв%';
    Тут я пример твой набрасывал:
    https://goo.gl/sjXITt
     
    Юрий73 нравится это.
  5. ivan_pupkin

    ivan_pupkin Создатель

    Регистр.:
    4 апр 2017
    Сообщения:
    2
    Симпатии:
    0
    Поменять во всей таблице сразу

    Код:
    UPDATE ps_category_lang SET meta_title = REPLACE(meta_title, 'Москве', 'Чебоксарах');
    UPDATE ps_category_lang SET meta_title = REPLACE(meta_title, 'Москва', 'Чебоксары');
    UPDATE ps_category_lang SET meta_title = REPLACE(meta_title, 'Moscow', 'Cheboksary');
     
  6. Юрий73

    Юрий73 Постоялец

    Регистр.:
    6 янв 2015
    Сообщения:
    92
    Симпатии:
    83
    Спасибо , в итоге так как мне нужно было менять название не только в одном столбце , выходит 10 отдельно запросов.
    UPDATE ps_category_lang SET meta_title = REPLACE(meta_title, 'Москве', 'Ульяновске') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_title = REPLACE(meta_title, 'Москва', 'Ульяновск') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_title = REPLACE(meta_title, 'Moscow', 'ulyanovsk') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_title = REPLACE(meta_title, 'Moskow', 'ulyanovsk') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_description = REPLACE(meta_description, 'Москве', 'Ульяновске') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_description = REPLACE(meta_description, 'Москва', 'Ульяновск') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_description = REPLACE(meta_description, 'Moskow', 'ulyanovsk') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_keywords = REPLACE(meta_keywords, 'Москве', 'Ульяновске') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_keywords = REPLACE(meta_keywords, 'Москва', 'Ульяновск') WHERE id_shop =2;
    UPDATE ps_category_lang SET meta_keywords = REPLACE(meta_keywords, 'Moskow', 'ulyanovsk') WHERE id_shop =2;

    Проверял , все работает. Спасибо. Его сократить можно ?
     
Статус темы:
Закрыта.