Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Изменение данных записей по параметрам 2-ух ячеек (http://forum.oszone.net/showthread.php?t=203467)

jabutyf 30-03-2011 17:07 1647309

Изменение данных записей по параметрам 2-ух ячеек
 
Здравствуйте, хотел бы узнать. Есть интернет магазин, в нем 8000 наименований, естественно каждая позиция прикреплена к группе. Интересует возможно ли изменить данные всех записей в ячейке "прайс" по всей заданной категории на проценты? например +10%

например cat_id "250" price "+10%" только как это составить синтаксически верно, если возможно)

Sham 30-03-2011 17:21 1647318

Код:

UPDATE
  `table`
SET
  `price` = 0.1 * `price` + `price`
WHERE
  `cat_id` = 1

для проверки сначала можно select вывести

Код:

SELECT
  `price`,
  (0.1 * `price` + `price`) AS `newprice`
FROM
  `table`
WHERE
  `cat_id` = 1


jabutyf 30-03-2011 17:37 1647327

хорошо, спасибо, а если нужно добавить одновременно в трех ячейках?

после проверки
MySQL вернула пустой результат (т.е. ноль строк). (запрос занял 0.0004 сек.)
Как я понял результат положительный

Код:

UPDATE
  `table`
SET
  `price` = 0.1 * `price` + `price`
 `price_spec` = 0.1 * `price_spec` + `price_spec`
`price_top` = 0.1 * `price_top` + `price_top`
WHERE
  `cat_id` = 1

Это будет верно?

Sham 30-03-2011 17:49 1647337

Цитата:

Цитата jabutyf
WHERE
`cat_id` = 1 »

номер категории и колонка свои (это от балды)
Цитата:

Цитата jabutyf
SET
`price` = 0.1 * `price` + `price`
`price_spec` = 0.1 * `price_spec` + `price_spec`
`price_top` = 0.1 * `price_top` + `price_top` »

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

предварительно проверьте селектом (чтобы ошибок не было). Должен возвращать строки.

jabutyf 30-03-2011 17:59 1647348

Ой, спасибо огромное. Остался только один вопрос открытым. Помимо Cat_id нужно выбирать данные из тругой таблицы

Sham 30-03-2011 18:14 1647356

тут есть примеры связки в update


Время: 23:57.

Время: 23:57.
© OSzone.net 2001-