Есть таблица products. И там есть столбцы qty (количество), buy_price (цена покупки) и total (итог). Можно ли как то внутри MYSQL умножить поле qty на buy_price и вытащить ответ в поле total?
Структура таблицы:
CREATE TABLE `products` (
`id` int(11) UNSIGNED NOT NULL,
`name` varchar(255) NOT NULL,
`qty` varchar(50) DEFAULT NULL,
`buy_price` decimal(25,2) DEFAULT NULL,
`total` decimal(25,2) DEFAULT NULL,
`sale_price` decimal(25,2) NOT NULL,
`categorie_id` int(11) UNSIGNED NOT NULL,
`media_id` int(11) DEFAULT '0',
`date` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Тестовые данные:
INSERT INTO `products` (`id`, `name`, `qty`, `buy_price`, `sale_price`, `categorie_id`, `media_id`, `date`) VALUES
(2, 'Samsung', '10', '500.00', '510.00', 1, 0, '2017-07-31 15:31:48'),
(3, 'LG', '5', '250.00', '260.00', 2, 0, '2017-08-03 12:33:17');
Спасибо всем за ответы. Решил этот вопрос весьма банально (может даже и не корректно), сделал UPDATE как и подсказали
update products set total=qty*buy_price
А для остальных товаров сделал умножение прямо в PHP (не знаю насколько это правильно).
Всё же пришлось сделать через триггер как и подсказал Anatol.
Можно сделать (с пересозданием таблицы) так:
CREATE TABLE `products` (
`id` int(11) UNSIGNED NOT NULL,
`name` varchar(255) NOT NULL,
`qty` varchar(50) DEFAULT NULL,
`buy_price` decimal(25,2) GENERATED ALWAYS AS (CAST(qty AS UNSIGNED) * buy_price),
`total` decimal(25,2) DEFAULT NULL,
`sale_price` decimal(25,2) NOT NULL,
`categorie_id` int(11) UNSIGNED NOT NULL,
`media_id` int(11) DEFAULT '0',
`date` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
С пересозданием колонки так:
ALTER TABLE products ADD COLUMN total ddecimal(25,2) GENERATED ALWAYS AS (CAST(qty AS UNSIGNED) * buy_price);
Или триггером:
CREATE TRIGGER MyTriggerName
BEFORE INSERT ON products
FOR EACH ROW
SET NEW.total = CAST(qty AS UNSIGNED) * buy_price;
Виртуальный выделенный сервер (VDS) становится отличным выбором
ЗдравствуйтеПодскажите пожалуйста у меня вот такая беда: Установил Android Studio, (при этом переустанавливал и раньше её) и при создании интерфейса...
Как сделать программу, которая будет распознавать жесты? Пример: я открываю браузер, рисую на экране букву "G" и он мне открывает гуглИли просто...