SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.12.2008 19:01:07

Raspr
Участник
Зарегистрирован: 07.12.2008
Сообщений: 3

Замена текста при условии значения в другом столбце?

Вопрос от чайника! Простите, если что-то не правильно формулирую и поправьте, пожалуйста.
Вопрос следующий. Можно ли в таблице заменить значения в конкретном столбце, но только при условие, что в другом столбце "такое-то" значение.
Пример. Таблица с новостями. Во всех новостях, принадлежащих определенной категории (ID, допустим 11) изменить автора. Т.е. не замена конкретного текста в столбце, а любого текста в этом столбце на указанный мной, но только для определенной категории.
Хм... сам не понял, понятно ли написал... )))

Неактивен

 

#2 08.12.2008 01:02:58

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Замена текста при условии значения в другом столбце?

Можно

update table_news set column_autor='XXX' where ID=11;
Заменит значение поля column_autor на 'XXX' во всех строчках где ID=11

Неактивен

 

#3 08.12.2008 09:28:48

Raspr
Участник
Зарегистрирован: 07.12.2008
Сообщений: 3

Re: Замена текста при условии значения в другом столбце?

Супер! Огромное спасибо! Все получилось!

Для нескольких категорий я просто делал отдельные запросы, т.е.
UPDATE table_news SET column_autor='XXX' WHERE ID=11;
UPDATE table_news SET column_autor='XXX' WHERE ID=12;
UPDATE table_news SET column_autor='XXX' WHERE ID=13;

Правильно ведь? Другого решения нет? И еще, хоть сейчас и не нужно, просто для общего развития. А если условий несколько? Т.е., допустим, еще и ну, не знаю... по дате пусть для примера. Как запрос должен выглядеть?
UPDATE table_news SET column_autor='XXX' WHERE ID=11 WHERE DATE=2008-03-14;

? Нет? smile

Неактивен

 

#4 08.12.2008 10:51:06

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Замена текста при условии значения в другом столбце?

UPDATE table_news SET column_autor='XXX' WHERE ID=11 AND DATE='2008-03-14';


Ваши несколько запросов можно было написать как
UPDATE table_news SET column_autor='XXX' WHERE ID=11 OR id=12 OR ID=13;

или
UPDATE table_news SET column_autor='XXX' WHERE ID in(11,12,13)

Неактивен

 

#5 08.12.2008 10:56:33

Raspr
Участник
Зарегистрирован: 07.12.2008
Сообщений: 3

Re: Замена текста при условии значения в другом столбце?

Огромное спасибо!!!

Неактивен

 

#6 26.12.2008 03:12:19

gumanok
Участник
Зарегистрирован: 26.12.2008
Сообщений: 7

Re: Замена текста при условии значения в другом столбце?

Спасибо и от меня! Мне это тоже помогло! Только еще одно условие появилось. У одного автора может быть несколько ID с какими-то общими символами. т.е. такие ID: ivanov_1, ivanov_2, ivanov_3, petrov_1, petrov_2, petrov_3. Как составить запрос, чтобы для всех ivanov_ column_autor='Иванов', а для всех petrov_, column_autor='Петров'? Заранее спасибо.

Неактивен

 

#7 26.12.2008 14:14:04

gumanok
Участник
Зарегистрирован: 26.12.2008
Сообщений: 7

Re: Замена текста при условии значения в другом столбце?

сам розобрался:
WHERE ID LIKE '%petrov%'

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson