Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вставка записи с условиями 
V
    Опции темы
bars80080
Дата 12.11.2010, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



1. есть такой запрос

INSERT INTO ... ON DUPLICATE KEY UPDATE ...

а как провести запрос, чтобы ON DUPLICATE KEY ничего не делал



2. в таблице есть поля alfa и beta, надо продублировать записи одного alfa для другого

то есть в связке с пхп это выглядело бы так:

Код

$r = SELECT beta FROM table WHERE alfa=4

foreach($r as $v) {

    INSERT INTO table alfa=7, beta=$v[beta]

}

можно ли сделать такое одним запросом?
PM MAIL WWW   Вверх
DeamonShan
Дата 12.11.2010, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 1
Всего: 6



по второму вопросу:

Код

INSERT INTO `table` (field1, filed2,...,fieldN) SELECT field1, field2,...., fieldN FROM `table` where alfa=4


не то?

Это сообщение отредактировал(а) DeamonShan - 12.11.2010, 01:17
PM MAIL   Вверх
Akina
Дата 12.11.2010, 09:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(bars80080 @  12.11.2010,  01:05 Найти цитируемый пост)
как провести запрос, чтобы ON DUPLICATE KEY ничего не делал

убрать его вообще.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skyboy
Дата 12.11.2010, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



чтоб вставить запись или ничего не делать, в случае совпадения значений в полях уникального ключа, используется insert ignore into ...
PM MAIL   Вверх
bars80080
Дата 12.11.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



Цитата(DeamonShan @  12.11.2010,  00:15 Найти цитируемый пост)
INSERT INTO `table` (field1, filed2,...,fieldN) SELECT field1, field2,...., fieldN FROM `table` where alfa=4

что-то не представляю как это сделать, ведь одно поле нужно скопировать из запроса, а другое указать самому.
а где здесь оно указывается?

Код

INSERT INTO `table` (alfa, beta) SELECT beta FROM `table` where alfa=4


как мне указать новое значение alfa=7 ?

Это сообщение отредактировал(а) bars80080 - 12.11.2010, 12:05
PM MAIL WWW   Вверх
Akina
Дата 12.11.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Код

INSERT INTO `table` (alfa, beta) SELECT 7, beta FROM `table` where alfa=4




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bars80080
Дата 12.11.2010, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



Цитата(skyboy @  12.11.2010,  10:26 Найти цитируемый пост)
чтоб вставить запись или ничего не делать, в случае совпадения значений в полях уникального ключа, используется insert ignore into ... 

да, работает



а второй вопрос решаемый? или лучше оставить связку с пхп?

Добавлено через 3 минуты и 42 секунды
Цитата(Akina @  12.11.2010,  11:09 Найти цитируемый пост)
INSERT INTO `table` (alfa, beta) SELECT 7, beta FROM `table` where alfa=4

о, судя по всему, то что надо


ок, всем спасибо
PM MAIL WWW   Вверх
DeamonShan
Дата 13.11.2010, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 1
Всего: 6



Ответили за меня))) изввеняюсь за отсутсвие...
PM MAIL   Вверх
StasIvanov
Дата 21.11.2010, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 21.11.2010

Репутация: нет
Всего: нет



Цитата(skyboy @ 12.11.2010,  11:26)
чтоб вставить запись или ничего не делать, в случае совпадения значений в полях уникального ключа, используется insert ignore into ...

Как раз зашел найти ответ на этот вопрос.
Спасибо, помогло. работает smile
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0625 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.