|
|
|
|
|
для: Trianon
(20.12.2008 в 22:29)
| | Я не знал что когда мы пишем , price=VALUES(price), значемние , VALUES(price) будет соответствовать нашему значению с INSERT.
А так прикольно, всё работает.
Спасибо за помощь. | |
|
|
|
|
|
|
|
для: dima_s_d_s
(20.12.2008 в 22:18)
| | вводим в таблицу поле seq , с умалчиваемым значением 1
INSERT INTO goods (barcode, name, price) VALUES
('6936614700897', 'Желтый полосатик, рыбка Дальпик', 79.90),
('4602547000206', 'Крем сливочный 15% Пискаревский', 22.20),
('4600687003750', 'Ситро Экстра, лимонад 2л.', 49.90)
ON DUPLICATE KEY UPDATE name=VALUES(name), price=VALUES(price), seq=seq+1;
|
для вновь заводимых записей поле окажется заполненным по умолчанию.
Для обновленных - увеличится на единичку.
SELECT id FROM goods WHERE seq = 1 покажет свежие записи.
Если присвоить в последнем выражении запроса константу, а не выражение, точно также просто можно будет получить ключи обновленных записей.
Всё решается. Если пытаться решать, а не списывать в лоб. | |
|
|
|
|
|
|
|
для: Trianon
(20.12.2008 в 22:10)
| | Увы, по мойму одним оператором тут не обойтись | |
|
|
|
|
|
|
|
для: dima_s_d_s
(20.12.2008 в 21:59)
| | Я как раз отошел немного в сторону. Чтобы Вы смогли подумать головой, а не броситься списывать тут же с форума на сайт.
А Ваш пример нерабочий хотя бы потому, что не дает одним оператором загнать сразу несколько товаров. Если конечно у них цена разная, а не только 497.02 | |
|
|
|
|
|
|
|
для: Trianon
(20.12.2008 в 21:55)
| | Лдано, понятно. Вы как те преподы что учат по учебнику, боятся отойти от темы хоть немного в сторону, так как сами не понимают о чем идет речь.
вот рабочий пример
INSERT INTO `products` (`products_id`, `products_model`, `products_price`) values (31301, 'AWADH4850DOBOX',497.02)
ON DUPLICATE KEY UPDATE `products_price` = 497.02;
|
| |
|
|
|
|
|
|
|
для: dima_s_d_s
(20.12.2008 в 21:31)
| | в мануале всё написано. | |
|
|
|
|
|
|
|
для: Trianon
(20.12.2008 в 21:12)
| | В каком случаи будет вставка а в каком обновление?
И как понять это UPDATE name=VALUES(name), price=VALUES(price); ? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(20.12.2008 в 21:10)
| | такая конструкция не будет работать никак. Потому что нарушает синтаксис языка.
INSERT INTO goods (barcode, name, price) VALUES
('6936614700897', 'Желтый полосатик, рыбка Дальпик', 79.90),
('4602547000206', 'Крем сливочный 15% Пискаревский', 22.20),
('4600687003750', 'Ситро Экстра, лимонад 2л.', 49.90)
ON DUPLICATE KEY UPDATE name=VALUES(name), price=VALUES(price);
|
| |
|
|
|
|
|
|
|
для: Trianon
(20.12.2008 в 21:03)
| | Причем здесь, лежало или не лежало.
Кто в курсе как будет работать данная конструкция? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(20.12.2008 в 20:49)
| | обожежмой. Откуда Вы взяли такой синтаксис?
Там такого и рядом не лежало. | |
|
|
|
|