#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