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-您可以共享当前的表结构吗?