Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 添加字段以表示按条件计算的值_Mysql_View - Fatal编程技术网

Mysql 添加字段以表示按条件计算的值

Mysql 添加字段以表示按条件计算的值,mysql,view,Mysql,View,我正在尝试向我的表中添加一个新列,它是其他两个列之间的差异,如下所示 ALTER TABLE GB ADD COLUMN spread INT; UPDATE GB SET spread = (home_score-away_score) WHERE GB.team = GB.home; UPDATE GB SET spread = (away_score-team_score) WHERE GB.team = GB.away; 我强烈建议创建一个视图,而不是添加第三列来表示派生信息。这样

我正在尝试向我的表中添加一个新列,它是其他两个列之间的差异,如下所示

ALTER TABLE GB
ADD COLUMN spread INT;

UPDATE GB
SET spread = (home_score-away_score)
WHERE GB.team = GB.home;

UPDATE GB
SET spread = (away_score-team_score)
WHERE GB.team = GB.away;

我强烈建议创建一个视图,而不是添加第三列来表示派生信息。这样,您的视图将始终具有更新的信息

CREATE VIEW v1 AS(
   SELECT *,(CASE 
        WHEN GB.team = GB.home THEN
             home_score-away_score
        ELSE 
             away_score-team_score 
        END
   )AS spread FROM GB
)

我认为最好不要创建额外的专栏。您可以使用如下所示的
select
语句轻松获得所需的结果

select id,team,home,away,home_score,away_score,team_score,
if(GB.team = GB.home,home_score-away_score,away_score-team_score) as spread  from gb

如果您需要进行小的修改,请在向下表决前通知我

那么,问题出在哪里?您可以使用插入/更新触发器。@David Allen Stern-您可以共享当前的表结构吗?