powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Заменить часть текста на текст с значением из другого поля
10 сообщений из 10, страница 1 из 1
Заменить часть текста на текст с значением из другого поля
    #40103470
max_1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Пытаюсь заменить заменить текст на значение из другого поля sql. Но вижу по синтаксису что-то явно не то.
Подскажите как правильно сделать! Вот что пытаюсь сделать
Код: sql
1.
UPDATE `record_description` SET `description` = REPLACE(`description`, 'alt=""', 'alt="`name`"');
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40103483
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL - это не диалект PHP, и подставлять значение вместо имени в литерал не будет. Так что ручками, ручками - функция CONCAT(), правильные аргументики...
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40103622
AndrewS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max_1985,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
create table record_description
( id int
, name varchar(30)
, description varchar(255)
, primary key(id)
);
insert into record_description
( values row( 1, 'a', 'test:alt="".')
       , row( 2, 'b', null)
       , row( 3, 'c', 'other')
);
-- v1
update record_description
set `description` = replace( `description`
                           , 'alt=""'
                           , concat( 'alt="', `name`, '"')
                           )
where `description` like '%alt=""%'
;
-- v2
update record_description
set `description` = replace
                    (   replace( `description`
                               , 'alt=""'
                               , 'alt="[STR-HOLDER]"'
                               )
                    , '[STR-HOLDER]'
                    , `name`
                    )
where `description` like '%alt=""%'
;
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40103847
max_1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndrewS, Спасибо огромное добрый человек!
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40104698
lamer who need help
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndrewS,
помогите пожалуйста и мне, я вообще не понимаю в SQL, мне 62 года, но вынужден изредка править свои базы,
использую шаблоны, типа copy/paste, но не более.

Итак,
Нужно скопировать цифровое значение из одного столбца и подставить его в другой столбец в виде дополнения к тексту.
(то есть индекс товара надо добавить к наименованию товара)

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

Буду очень признателен, если сможете помочь, спасибо!

UPDATE `u0387_disko`.`SS_products` SET `name` =
CONCAT(`SS_products`.`name`, ' ????')
(видимо, тут должно стоять то, откуда копировать)

WHERE `SS_products`.`enabled` =1 и тд


Спасибо
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40104699
lamer who need help
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

помогите земляку :), я вообще не понимаю в SQL, мне 62 года, но вынужден изредка править свои базы,
использую шаблоны, типа copy/paste, но не более.

Итак,
Нужно скопировать цифровое значение из одного столбца и подставить его в другой столбец в виде дополнения к тексту.
(то есть индекс товара надо добавить к наименованию товара)

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

Буду очень признателен, если сможете помочь, спасибо!

UPDATE `u0387_disko`.`SS_products` SET `name` =
CONCAT(`SS_products`.`name`, ' ????')
(видимо, тут должно стоять то, откуда копировать)

WHERE `SS_products`.`enabled` =1 и тд


Спасибо
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40104835
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lamer who need help
UPDATE `u0387_disko`.`SS_products` SET `name` =
CONCAT(`SS_products`.`name`, ' ????')
(видимо, тут должно стоять то, откуда копировать)

WHERE `SS_products`.`enabled` =1 и тд
CONCAT не копирует, она объединяет строковые данные. В принципе, вы всё правильно написали, только имейте в виду, что индекс товара поместится непосредственно за именем, т.е. без пробела и разделителя.
Если вам надо, чтобы между наименованием товара и его индексом всё-таки был какой-то разделитель, то его надо указать (в данном случае это пробел, второй по счёту параметр):
Код: sql
1.
CONCAT(`SS_products`.`name`, ' ', `SS_products`.`my_index`)

Плюс ко всему, если индекс может быть is NULL, то желательно обрабатывать и этот момент, для этого есть функция COALESCE() или можно вместо CONCAT() задействовать CONCAT_WS().
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40104869
lamer who need help
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluck99, спасибо большое, пробелы не проблема, с этим разберусь, а где соббсно копирование?
И что поставить между красными ' ' ?
Извините, что слишком надоедаю, но править вручную 300 строк, если явно есть более изящное решение, глупо.
Спасибо
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40104870
lamer who need help
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, это, собственно и есть пробел, про который Вы говорили.
Сейчас попробую, спасибо
...
Рейтинг: 0 / 0
Заменить часть текста на текст с значением из другого поля
    #40104871
lamer who need help
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Вам большое, выручили, всё сработало!!!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Заменить часть текста на текст с значением из другого поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]