Запрос в БД MySQL

#1 15 декабря 2018 в 13:01
Здравствуйте, подскажите пожалуйста, если одна строка, в ней много колонок. И вот нужно поменять данные в этих колонках. Я делаю три разных запроса, вначале для одной колонки, потом второй запрос для второй колонки, ну и третий для третьей колонки. При этом сама таблица (строка) одна и таже. Вопрос, можно ли запрос обьединить вместо трёх в один или это нереально? Я знаю как-то через занятые и прочие значения пишут более длинный запрос, но не понимаю как.
Вот примеры запросов:
UPDATE cms_test SET target_id = '1' WHERE target_url LIKE '%testik/testik.html%' AND target_id = '0';
UPDATE cms_test SET target_subject = 'new' WHERE target_url LIKE '%testik/testik.html%' AND target_subject = 'testik';
UPDATE cms_test SET target_url = 'new/testik.html' WHERE target_url LIKE '%testik/testik.html%' AND target_url = 'testik/testik.html';
То есть первый меняет в ячейке target_id с 0 на 1.
Второй — target_subject меняет testik на new.
Третьей — target_url меняет testik/testik.html на new/testik.html
Получается замена идёт в трёх колонках, но в одной и тоже таблице cms_test.
Можно как-то написать один запрос вместо трёх? Подскажите пожалуйста.
#2 15 декабря 2018 в 13:45
Как-то так

  1. UPDATE cms_test
  2. SET target_id = REPLACE(target_id, '0','1'),
  3. target_subject = REPLACE(target_subject, 'testik','new'),
  4. target_url = REPLACE(target_url, 'testik/','new/'),
  5.  
А вот это условие у вас забавное, LIKE явно лишний.

WHERE target_url LIKE '%testik/testik.html%' AND target_url = 'testik/testik.html';

@Milyana
#3 15 декабря 2018 в 14:18


Как-то так

  1. UPDATE cms_test
  2. SET target_id = REPLACE(target_id, '0','1'),
  3. target_subject = REPLACE(target_subject, 'testik','new'),
  4. target_url = REPLACE(target_url, 'testik/','new/'),
  5.  
А вот это условие у вас забавное, LIKE явно лишний.

WHERE target_url LIKE '%testik/testik.html%' AND target_url = 'testik/testik.html';

@Milyana

@SmartControl

в общем этот запрос заменил вообще все и устроил кашу… что то не так.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.