Математическое действие со знаком из ячейки таблицы - MySQL
Формулировка задачи:
доброго времени суток!
еще мааалюсенький вопросик:
есть некая табличка tbl с полями типа
и надо в другую таблицу вставить результат математического действия из первой
INSERT INTO another_tbl (res) VALUES ((SELECT tbl.x *математическое действие из tbl.sign* tbl.y WHERE tbl.id=1))
можно ли такое сделать 1 запросом?
а главное - как?)))
id | x | sign | y |
1 | 2 | + | 2 |
2 | 3 | * | 4 |
Решение задачи: «Математическое действие со знаком из ячейки таблицы»
textual
Листинг программы
- create table tst (
- id int not null auto_increment,
- x int,
- sign char(1),
- y int,
- constraint pk_tst_id primary key (id)
- ) engine = myisam default character set = cp1251;
- insert into tst (x, y, sign) values
- (2, 3, '+'),
- (4, 2, '/'),
- (5, 3, '-'),
- (2, 8, '*');
- select *,
- case t.sign
- when '+' then cast(t.x + t.y as decimal(10, 2))
- when '-' then cast(t.x - t.y as decimal(10, 2))
- when '*' then cast(t.x * t.y as decimal(10, 2))
- when '/' then cast(t.x / t.y as decimal(10, 2))
- end as res
- from tst t;
Объяснение кода листинга программы
- Создание таблицы
tst
с полями: —id
— уникальный идентификатор записи (автоинкрементируемое поле) —x
— первое числовое значение —sign
— знак математического действия (плюс, минус, умножить или поделить) —y
— второе числовое значение - Вставка данных в таблицу
tst
- Выборка данных из таблицы
tst
с использованием функцииcase
для определения операции, которую необходимо выполнить в зависимости от значения поляsign
. Результатом выборки является результат математической операции (сложение, вычитание, умножение или деление) двух чисел с точностью до двух знаков после запятой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д