Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Заменить часть текста на текст с значением из другого поля / 10 сообщений из 10, страница 1 из 1
11.10.2021, 08:31
    #40103470
max_1985
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заменить часть текста на текст с значением из другого поля
Здравствуйте!
Пытаюсь заменить заменить текст на значение из другого поля sql. Но вижу по синтаксису что-то явно не то.
Подскажите как правильно сделать! Вот что пытаюсь сделать
Код: sql
1.
UPDATE `record_description` SET `description` = REPLACE(`description`, 'alt=""', 'alt="`name`"');
...
Рейтинг: 0 / 0
11.10.2021, 09:46
    #40103483
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заменить часть текста на текст с значением из другого поля
SQL - это не диалект PHP, и подставлять значение вместо имени в литерал не будет. Так что ручками, ручками - функция CONCAT(), правильные аргументики...
...
Рейтинг: 0 / 0
11.10.2021, 15:47
    #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
12.10.2021, 16:17
    #40103847
max_1985
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заменить часть текста на текст с значением из другого поля
AndrewS, Спасибо огромное добрый человек!
...
Рейтинг: 0 / 0
15.10.2021, 12:35
    #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
15.10.2021, 12:36
    #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
15.10.2021, 21:36
    #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
16.10.2021, 01:41
    #40104869
lamer who need help
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заменить часть текста на текст с значением из другого поля
Gluck99, спасибо большое, пробелы не проблема, с этим разберусь, а где соббсно копирование?
И что поставить между красными ' ' ?
Извините, что слишком надоедаю, но править вручную 300 строк, если явно есть более изящное решение, глупо.
Спасибо
...
Рейтинг: 0 / 0
16.10.2021, 01:45
    #40104870
lamer who need help
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заменить часть текста на текст с значением из другого поля
Понял, это, собственно и есть пробел, про который Вы говорили.
Сейчас попробую, спасибо
...
Рейтинг: 0 / 0
16.10.2021, 01:50
    #40104871
lamer who need help
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заменить часть текста на текст с значением из другого поля
Спасибо Вам большое, выручили, всё сработало!!!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Заменить часть текста на текст с значением из другого поля / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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