ФорумПрограммированиеPHP для идиотов → ON duplicate KEY UPDATE с мульти инсертом

ON duplicate KEY UPDATE с мульти инсертом

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 мая 2009 г. 14:37, спустя 18 секунд


    Ответный вопрос, а это что такое?
    a=VALUES(a) + VALUES(b) + VALUES©

    а это просто сумма для всех столбцов.
    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 мая 2009 г. 14:38, спустя 59 секунд


    Никогда не думал что скажу phpdude, что он не прав!
    Но увы это случилось!
    phpdude, ТЫ НЕ ПРАВ!!!

    a=VALUES(a) + VALUES(b) + VALUES©;

    да, это написанно в мануале, но по логике если смотреть,
    если дубликат , то заменяем а на значение VALUES(a) , b на значение b VALUES(b), с на значение с VALUES©;

    Ну и что что a дубликат? при замене на саму себя ничего не изменится, можно вообще убрать эту строчку и получится так.

    INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
    ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES©;

    Проверенно мной! Все работает как часы =)



    то есть у тебя в таблице сейчас есть одинаковые(по уникальному столбцу) строчки?
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 25 мая 2009 г. 14:46, спустя 7 минут 45 секунд

    то есть у тебя в таблице сейчас есть одинаковые(по уникальному столбцу) строчки?

    Да, есть. Никак не мешает=)

    ну всмысле уникальный столбец он уникальный, а остальное совпадает.
    Есть и такие.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 мая 2009 г. 14:49, спустя 3 минуты 23 секунды


    то есть у тебя в таблице сейчас есть одинаковые(по уникальному столбцу) строчки?

    Да, есть. Никак не мешает=)

    ну всмысле уникальный столбец он уникальный, а остальное совпадает.
    Есть и такие.
    дай дамп позырить
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 25 мая 2009 г. 14:51, спустя 2 минуты 14 секунд

    Это тест, поэтому дамп такой =)

    CREATE TABLE `product` (
    `sort` int(11) NOT NULL,
    `art` varchar(70) NOT NULL,
    `name` varchar(100) NOT NULL,
    `kr_info` text NOT NULL,
    `pol_info` longtext NOT NULL,
    `categor` varchar(100) NOT NULL,
    `currensy` float NOT NULL default '0',
    `val` varchar(3) NOT NULL default 'EUR',
    `rek` longtext NOT NULL,
    `img` varchar(50) NOT NULL,
    PRIMARY KEY (`art`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


    – Дамп данных таблицы `product`


    INSERT INTO `product` VALUES (0, '', '', '', '', '', 0, '', '', '');
    INSERT INTO `product` VALUES (0, '1', '123', '', '', '1111111', 0, '3;4', '', '');
    INSERT INTO `product` VALUES (0, '2', '4423', '', '', '2222222', 0, '', '', '');
    INSERT INTO `product` VALUES (0, '6', '23', '', '', '2222222', 0, '', '', '');
    INSERT INTO `product` VALUES (0, '4', '23', '', '', '2222222', 0, '', '', '');
    INSERT INTO `product` VALUES (0, '7', '666623', '', '', '2222223', 0, '', '', '');

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 мая 2009 г. 14:54, спустя 3 минуты 1 секунду

    а запрос которым вставлял?
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 25 мая 2009 г. 14:55, спустя 56 секунд

    уууууу, щас =)
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 25 мая 2009 г. 14:57, спустя 1 минуту 35 секунд

    INSERT INTO product ( `sort` , `art` , `name` , `kr_info` , `pol_info` , `categor` , `currensy` , `val` ,`rek`,`img`) VALUES ('сортировка','артикул','наименование','краткое описание','полное описание','категория','валюта','ркоменд','',''), ('0','1','123','краткое описание','полное описание','1111111','EUR','3;4;5','',''), ('0','2','4423','краткое описание','полное описание','2222222','EUR','','',''), ('0','4','23','краткое описание','полное описание','2222222','EUR','','',''), ('0','6','23','краткое описание','полное описание','2222222','EUR','','',''), ('0','7','666623','краткое описание','полное описание','2222223','EUR','','','') ON DUPLICATE KEY UPDATE `sort`=VALUES(sort) , `name`=VALUES(name) , `kr_info`=VALUES(kr_info) , `pol_info`=VALUES(pol_info) , `categor`=VALUES(categor) , `currensy`=VALUES(currensy) , `val`=VALUES(val)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 мая 2009 г. 15:00, спустя 3 минуты

    аа понял фишку. он просто вставляет запись и хуй знает какой ей уникальный идентификатор дает(приудмывает) … это не вариант, нихуя :( для мну по крайней мере. для ID еще сканает, но проще автоинкремент поставить имхо. а вот на уникальность я бы так не стал проверять))
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 25 мая 2009 г. 15:00, спустя 1 секунду

    мля, кирилица не вставилась =( тока заметил =)
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 25 мая 2009 г. 15:03, спустя 3 минуты 17 секунд

    он просто вставляет запись и хуй знает какой ей уникальный идентификатор дает(приудмывает)


    Ничего подобного.
    Я меняю name где art = 4 он именно у него и меняет.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 мая 2009 г. 15:04, спустя 1 минуту 11 секунд


    он просто вставляет запись и хуй знает какой ей уникальный идентификатор дает(приудмывает)


    Ничего подобного.
    Я меняю name где art = 4 он именно у него и меняет.

    еще бы это было не так :-D то я бы мускулем не пользовался
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 25 мая 2009 г. 15:07, спустя 2 минуты 37 секунд

    он просто вставляет запись и хуй знает какой ей уникальный идентификатор дает(приудмывает)

    а тогда это к чему?

    Ничего подобного.
    Я меняю name где art = 4 он именно у него и меняет.

    Это я из CSV файла базу забиваю.
    и в CSV меняю значение и в базе оно заменяется у нужного артикула, а если такого артикула нет то вставляется.

    Не пойму чего ты сказать хочеш=)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 мая 2009 г. 15:08, спустя 1 минуту 21 секунду

    забей)) я понял что хотел, другим понимать меня не обязательно)
    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 мая 2009 г. 15:08, спустя 8 секунд

    пиздец
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!