|
|
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
Всем привет, помогите объеденить запросы. Я конечно могу их арзделить на 2 и сделать на php так как мне надо, но хочется развивать свои знания и понять как можно сделать В общем надо обновить цену продуктов, ID'шники которых мы получили Сначала выбираем ID SELECT id FROM products WHERE category = 1 И вот всем этим товарам надо обновить цену UPDATE prices SET price = price + 10 WHERE product_id = все ID, которые получили выше.. Ну вот как то так, буду благодарен за подсказку)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 13:15:09 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
См. в доке синтаксис команды update, последний или предпоследний пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 13:35:14 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
MadChildВсем привет, помогите объеденить запросы. SELECT id FROM products WHERE category = 1 И вот всем этим товарам надо обновить цену UPDATE prices SET price = price + 10 WHERE product_id = все ID, которые получили выше.. Ну вот как то так, буду благодарен за подсказку)) Ну так вот я думаю надо объединить натурально. UPDATE prices SET price = price + 10 WHERE products.category = 1; The WHERE clause, if given, specifies the conditions that identify which rows to update. http://dev.mysql.com/doc/refman/5.0/en/update.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 15:03:18 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
miksoft, спасибо)) то что надо)) deblogger, там запрос гораздо сложнее и боюсь что так не получится(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 15:05:14 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
MadChild, В той же статье описано как поступать со связанными таблицами. "Суть такова": операторы insert, delete, update точно так же сперва выбирают как select. Остальное - нюансы. Которые, конечно, имеют значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 15:12:52 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
Даже view может быть updatable. Причем драйвер еще и проверит за вас - можно ли эту часть таблицы (в смысле ту таблицу) редактировать. Глубоко не вникал, почитал о кошмарном количестве условий для пользования редактируемым view и забыл. Редактируемость проверяется. Как в API не знаю, в information_schema есть таблица VIEWS и там поле UPDATABLE или типа того. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 15:17:41 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
Не заметил, это значит две таблицы SELECT id FROM products WHERE category = 1 UPDATE prices SET price = price + 10 WHERE product_id = priducts где есть id и дочерняя prices где есть product_id Получить расширенную таблицу просто select * from product, prices where prices.product_id = product.id; в продуктах есть код category select * from product, prices where prices.product_id = product.id AND product.category = 1; должны получить таблицу где каждому продукту сопоставлена цена и все продукты из категории кода 1 Теоретически так же делается убдейт: update product, prices SET price = price + 10 where prices.product_id = product.id AND product.category = 1; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 15:29:08 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
Вот если вы захотите отредактировать category - данные которой в результате такого объединения окажутся размноженными - я не знаю что произойдет. Судя по поведению пхпмайадмина которым я вынужденно пользуюсь как интерфейсом к майскулю - размноженные данные редактировать нельзя. Но если редактируются условно говоря уникальные записи - 1 товар == 1 цена - то все должно сработать как предусмотрено мануалом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 16:42:37 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
Автор - выложи вырезку из таблиц и запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 21:24:41 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
deblogger - огромное спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 17:04:19 |
|
||
|
Update ... Where... Select - обновления по условию
|
|||
|---|---|---|---|
|
#18+
V2oD2o CREATE TABLE IF NOT EXISTS `wv5c4_virtuemart_product_custom_plg_param_ref` ( `id` int(11) NOT NULL AUTO_INCREMENT, `virtuemart_product_id` int(11) NOT NULL, `virtuemart_custom_id` int(11) NOT NULL, `val` int(11) NOT NULL, `intval` double NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='customvalues reference' AUTO_INCREMENT=107 ; CREATE TABLE IF NOT EXISTS `wv5c4_virtuemart_product_prices` ( `virtuemart_product_price_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `virtuemart_product_id` int(1) unsigned NOT NULL DEFAULT '0', `virtuemart_shoppergroup_id` int(11) DEFAULT NULL, `product_price` decimal(15,5) DEFAULT NULL, PRIMARY KEY (`virtuemart_product_price_id`), KEY `idx_product_price_product_id` (`virtuemart_product_id`), KEY `idx_product_price_virtuemart_shoppergroup_id` (`virtuemart_shoppergroup_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Holds price records for a product' AUTO_INCREMENT=1942 ; В общем надо увеличить цену на 30% всем товарам, у которых wv5c4_virtuemart_product_custom_plg_param_ref.virtuemart_custom_id = 50 и wv5c4_virtuemart_product_custom_plg_param_ref.val = 70 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 17:07:50 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38344024&tid=1836393]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 296ms |

| 0 / 0 |
