|
MySQL.RU - Webboard
Вернуться
INSERT или UPDATE по условию (Алексей) 14/05/2009 - 15:57:47
Re: INSERT или UPDATE по условию (Diter) 17/05/2009 - 08:07:21
> Original message text:
> From: Алексей - 14/05/2009 - 15:57:47
> Subject:INSERT или UPDATE по условию
> -----------------
> Есть задача ОДНИМ SQL запросом сделать следующее:
>
> есть таблица
> +--+--------+--------+--------+
> |ID|Строка 1|Строка 2| Дата |
> +--+--------+--------+--------+
> |00|Вася |ААА |01.02.09|
> |01|Петя |BBB |23.01.09|
> |02|Саша |CCC |19.02.09|
> +--+--------+--------+--------+
>
> Если добавляем данные "Петя,BBB,14.05.09"
> Данные идентичны, следовательно только обновляем дату, получаем итого
> +--+--------+--------+--------+
> |ID|Строка 1|Строка 2| Дата |
> +--+--------+--------+--------+
> |00|Вася |ААА |01.02.09|
> |01|Петя |BBB |14.05.09|
> |02|Саша |CCC |19.02.09|
> +--+--------+--------+--------+
>
> Если добавляем данные "Петя,CCC,14.05.09"
> Данные различны, следовательно строку добавляем целиком, получаем итого
> +--+--------+--------+--------+
> |ID|Строка 1|Строка 2| Дата |
> +--+--------+--------+--------+
> |00|Вася |ААА |01.02.09|
> |01|Петя |BBB |23.01.09|
> |02|Саша |CCC |19.02.09|
> |03|Петя |CCC |14.05.09|
> +--+--------+--------+--------+
>
> Вся соль, что необходим один запрос (хотя он может быть и сложным). Т.е. в SQL будет передана только одна строка.
>
>
From: Diter - 17/05/2009 - 08:07:21
Subject:INSERT или UPDATE по условию
-----------------
Поле ID в таблице - это primary key auto_increment? Если да, тогда сделайте в таблице уникальный индекс (Строка1,Строка2) и используейте следующий запрос для вставки:
INSERT INTO table1 (Строка1,Строка2,Дата) VALUES ('значение строки1','значение строки2','значение даты')
ON DUPLICATE KEY UPDATE Дата='значение даты'
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35589
|
|