如果可能,我想添加一个字段,该字段包含同一个表中另一个字段的数据。在这种情况下,我希望table.newfield中的everythhing显示table.oldfield中小于100的值。我可以在sql中执行此操作吗?或者我是否应该坚持在报告的选择查询中执行此操作?
Mysql 5,1 innodb严格模式
答案 0 :(得分:4)
您可以在添加新列后执行更新,例如
ALTER the table to add a Nullable Int/Long/??? called NewField
UPDATE Table SET NewField = OldField WHERE OldField<100
这个犯规当然只会在查询运行时更新
您可能还想查看使用视图 - 这些视图是被视为表的有效查询。所以你可以有一个视图:
SELECT <Other Fields>,
CASE WHEN OldField<100 THEN OldField
ELSE NUll
END CASE
FROM table
(上述语法未经检查,但应该大致正确)
答案 1 :(得分:0)
如果您只想显示短字符串,那么在SQL中全部执行 - 不要冗余地存储该数据。
如果你必须再次存放,那么Basiclife就做对了..