SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 28.01.2008 14:53:54

vladimirov
Завсегдатай
Зарегистрирован: 16.12.2007
Сообщений: 69

возможно ли делать загрузку INSERT INTO по столбцам?

возможно ли делать загрузку  INSERT INTO по столбцам?

типа сначала
INSERT INTO `table` VALUES ('1','','','','');
INSERT INTO `table` VALUES ('2','','','','');
INSERT INTO `table` VALUES ('3','','','','');

а потом уже
INSERT INTO `table` VALUES ('','1','','','');
INSERT INTO `table` VALUES ('','2','','','');
INSERT INTO `table` VALUES ('','3','','','');

что б в итоге получить таблицу
'1','1','','',''
'2','2','','',''
'3','3','','',''

полагаю инсерт пустого значения затерёт то значение которое уже в таблице ('')
то есть надо там поставить какой то код - что бы в этом "инсерте" этот столбик не трогать...
тока вот какой код?

Неактивен

 

#2 28.01.2008 14:58:25

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

Re: возможно ли делать загрузку INSERT INTO по столбцам?

Так сделать нельзя. INSERT добавляет новую строку, для изменения уже существующей используйте UPDATE и меняйте нужные Вам поля.

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

Неактивен

 

#3 28.01.2008 15:25:08

vladimirov
Завсегдатай
Зарегистрирован: 16.12.2007
Сообщений: 69

Re: возможно ли делать загрузку INSERT INTO по столбцам?

точно!
полагаю сперва все таки надо сделать инсерт
а потом апдейт по столбцам. ок понял.

тока вот у вас пример сложноватый. это цитата с мануала?
можно примерчик применительно к моему вопросу который там ^

Неактивен

 

#4 28.01.2008 15:41:54

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

Re: возможно ли делать загрузку INSERT INTO по столбцам?

Ваш пример. Сначала
INSERT INTO `table` VALUES ('1','','','','');
INSERT INTO `table` VALUES ('2','','','','');
INSERT INTO `table` VALUES ('3','','','','');

Затем:
UPDATE `table` SET `column2` = '1' WHERE `column1` = '1';
UPDATE `table` SET `column2` = '2' WHERE `column1` = '2';
UPDATE `table` SET `column2` = '3' WHERE `column1` = '3';

В итоге получится:
'1','1','','',''
'2','2','','',''
'3','3','','',''

Без части WHERE обновиться указанная колонка во всей таблице.

Неактивен

 

#5 28.01.2008 15:49:07

vladimirov
Завсегдатай
Зарегистрирован: 16.12.2007
Сообщений: 69

Re: возможно ли делать загрузку INSERT INTO по столбцам?

а как быть с пустыми?
например в некоторых местах есть пропуски. там где ничо нет. пустое поле короче.

типа
INSERT INTO `table` VALUES ('','1','','','');
INSERT INTO `table` VALUES ('','','','','');
INSERT INTO `table` VALUES ('','3','','','');

и, полагаюо, что бы все пошло путем - надо шоб количество строк в первом инсерте и в последующих апдейтах было одинаковое?

Неактивен

 

#6 28.01.2008 16:02:59

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

Re: возможно ли делать загрузку INSERT INTO по столбцам?

При INSERT указываются все столбцы (не всегда обязательно, но как правило). При UPDATE в части SET Вы указываете только те столбцы, которые нужно изменить. Если Вы хотите обновить не всю таблицу, а только определенные строки, то в части WHERE указываете условие как выбрать именно нужные Вам строки.

Неактивен

 

#7 28.01.2008 16:14:17

vladimirov
Завсегдатай
Зарегистрирован: 16.12.2007
Сообщений: 69

Re: возможно ли делать загрузку INSERT INTO по столбцам?

ок. все понял. вроде получается. спасибо!

Неактивен

 

Board footer

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