Как запустить уникальную функцию для вычисления и замены нулевого значения в базе данных?

#javascript #php #sql #sql-update #case

#javascript #php #sql #sql-обновление #случай

Вопрос:

введите описание изображения здесь

В приведенной выше базе данных я хочу вычислить значение для «A2», используя другие 3 переменные. Предпосылка заключается в том, что каждый столбец имеет определенную оценку по каждой переменной, и в этом случае javascript суммирует ответы в строке с нулевым пробелом в слоте A2.

 SELECT Name, A1, IFNULL(A2, $f), A3, A4
FROM demo;
  
 <?php
$x=0

if($A1=='C')
    $x 0;
else($A1=='M')
    $x 10;

if($A3=='R')
    $x 10;

if($A4=='S')
    $x 20;
else($A1=='C')
    $x 0;

if($x<=20)
    $f='T'
else($x>20)
    $f='V'
  

Ответ №1:

Вы можете реализовать ту же логику в SQL с помощью пары case выражений:

 select name, a1,
    coalesce(a2, 
        case when (
              case when a1 = 'M' then 10 else 0 end
              case when a3 = 'R' then 10 else 0 end
              case when a4 = 'S' then 20 else 0 end
        ) <= 20 then 'T' else 'V' end
    ) a2,
    a3,
    a4
from demo
  

Если вам нужен update оператор:

 update demo
set a2 = 
    case when (
          case when a1 = 'M' then 10 else 0 end
          case when a3 = 'R' then 10 else 0 end
          case when a4 = 'S' then 20 else 0 end
    ) <= 20 then 'T' else 'V' end
where a2 is null