@ushi

Mysql копирование внутри одной таблицы. Возможно?

Доброго времени суток!

Расшифрую вопрос на конкретном примере:

есть некая таблица с 3 элементами:

id year on

5 2005 1
6 2006 1
7 2007 0

делаем выборку где on = 1 и теперь надо скопировать в поля, где on = 0.

Т.е. результат по идее должен быть:

id year on

5 2005 1
6 2006 1
7 2005 0
8 2006 0

Такое осуществимо? Есть ли более гибкие методы?
  • Вопрос задан
  • 523 просмотра
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега MySQL
Просто выборка:
SELECT `year`, `on` FROM `table` WHERE `on`=1
UNION
SELECT `year`, '0' FROM `table` WHERE `on`=1


Вставка:
INSERT INTO `table` (`year`, `on`)
SELECT `inner`.`year`, '0' FROM (
	SELECT * FROM `table` WHERE `on`=1 
) AS `inner`

Пояснение: нельзя производить вставку в ту таблицу, откуда производится выборка, поэтому приходится заворачивать выборку в дополнительный SELECT для обхода этого ограничения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы