Математическое действие со знаком из ячейки таблицы - MySQL

Узнай цену своей работы

Формулировка задачи:

доброго времени суток! еще мааалюсенький вопросик: есть некая табличка tbl с полями типа
id x sign y
1 2 + 2
2 3 * 4
и надо в другую таблицу вставить результат математического действия из первой INSERT INTO another_tbl (res) VALUES ((SELECT tbl.x *математическое действие из tbl.sign* tbl.y WHERE tbl.id=1)) можно ли такое сделать 1 запросом? а главное - как?)))

Решение задачи: «Математическое действие со знаком из ячейки таблицы»

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;

Объяснение кода листинга программы

  1. Создание таблицы tst с полями: — id — уникальный идентификатор записи (автоинкрементируемое поле) — x — первое числовое значение — sign — знак математического действия (плюс, минус, умножить или поделить) — y — второе числовое значение
  2. Вставка данных в таблицу tst
  3. Выборка данных из таблицы tst с использованием функции case для определения операции, которую необходимо выполнить в зависимости от значения поля sign. Результатом выборки является результат математической операции (сложение, вычитание, умножение или деление) двух чисел с точностью до двух знаков после запятой.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы