Математическое действие со знаком из ячейки таблицы - 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
Листинг программы
  1. create table tst (
  2.   id  int not null auto_increment,
  3.   x   int,
  4.   sign char(1),
  5.   y   int,
  6.   constraint pk_tst_id primary key (id)
  7. ) engine = myisam default character set = cp1251;
  8. insert into tst (x, y, sign) values
  9.   (2, 3, '+'),
  10.   (4, 2, '/'),
  11.   (5, 3, '-'),
  12.   (2, 8, '*');
  13. select *,
  14.   case t.sign
  15.     when '+' then cast(t.x + t.y as decimal(10, 2))
  16.     when '-' then cast(t.x - t.y as decimal(10, 2))
  17.     when '*' then cast(t.x * t.y as decimal(10, 2))
  18.     when '/' then cast(t.x / t.y as decimal(10, 2))
  19.   end as res
  20. from tst t;

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

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

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


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

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

8   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы