powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Update ... Where... Select - обновления по условию
11 сообщений из 11, страница 1 из 1
Update ... Where... Select - обновления по условию
    #38342001
MadChild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, помогите объеденить запросы.
Я конечно могу их арзделить на 2 и сделать на php так как мне надо, но хочется развивать свои знания и понять как можно сделать

В общем надо обновить цену продуктов, ID'шники которых мы получили

Сначала выбираем ID

SELECT id FROM products WHERE category = 1

И вот всем этим товарам надо обновить цену

UPDATE prices SET price = price + 10 WHERE product_id = все ID, которые получили выше..

Ну вот как то так, буду благодарен за подсказку))
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38342049
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. в доке синтаксис команды update, последний или предпоследний пример.
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38342250
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38342260
MadChild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, спасибо)) то что надо))

deblogger, там запрос гораздо сложнее и боюсь что так не получится((
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38342282
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MadChild,

В той же статье описано как поступать со связанными таблицами.

"Суть такова": операторы insert, delete, update точно так же сперва выбирают как select. Остальное - нюансы. Которые, конечно, имеют значение.
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38342291
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже view может быть updatable.

Причем драйвер еще и проверит за вас - можно ли эту часть таблицы (в смысле ту таблицу) редактировать. Глубоко не вникал, почитал о кошмарном количестве условий для пользования редактируемым view и забыл.

Редактируемость проверяется. Как в API не знаю, в information_schema есть таблица VIEWS и там поле UPDATABLE или типа того.
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38342334
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не заметил, это значит две таблицы

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;
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38342499
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот если вы захотите отредактировать category - данные которой в результате такого объединения окажутся размноженными - я не знаю что произойдет. Судя по поведению пхпмайадмина которым я вынужденно пользуюсь как интерфейсом к майскулю - размноженные данные редактировать нельзя.

Но если редактируются условно говоря уникальные записи - 1 товар == 1 цена - то все должно сработать как предусмотрено мануалом.
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38342889
V2oD2o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Автор - выложи вырезку из таблиц и запрос
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38344024
MadChild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
deblogger - огромное спасибо
...
Рейтинг: 0 / 0
Update ... Where... Select - обновления по условию
    #38344034
MadChild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Update ... Where... Select - обновления по условию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]