Запрос в БД MySQL

 
Посетитель
small user social cms
Медаль
Сообщений: 180
Здравствуйте, подскажите пожалуйста, если одна строка, в ней много колонок. И вот нужно поменять данные в этих колонках. Я делаю три разных запроса, вначале для одной колонки, потом второй запрос для второй колонки, ну и третий для третьей колонки. При этом сама таблица (строка) одна и таже. Вопрос, можно ли запрос обьединить вместо трёх в один или это нереально? Я знаю как-то через занятые и прочие значения пишут более длинный запрос, но не понимаю как.
Вот примеры запросов:
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.
Можно как-то написать один запрос вместо трёх? Подскажите пожалуйста.
Посетитель
small user social cms
Медаль
Сообщений: 653
Как-то так

Код PHP:
  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 явно лишний.
@Milyana:
WHERE target_url LIKE '%testik/testik.html%' AND target_url = 'testik/testik.html';
Посетитель
small user social cms
Медаль
Сообщений: 180
@SmartControl:

Как-то так

Код PHP:
  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 явно лишний.
@Milyana:
WHERE target_url LIKE '%testik/testik.html%' AND target_url = 'testik/testik.html';

в общем этот запрос заменил вообще все и устроил кашу.. что то не так.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.