2010-08-16 44 views
0

我想添加一个字段,如果可能的话,它包含来自同一个表中另一个字段的数据。在这种情况下,我希望table.newfield中的everythhing显示table.oldfield中小于100的值。我可以在sql中执行此操作吗?或者我应该坚持在报告的选择查询中这么做吗?mysql,根据现有数据创建字段

Mysql的InnoDB的5.1严格模式

回答

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 

(以上部分的语法是未经检查的,但应该是大致正确)

更多阅读:Creating ViewsMySQL Case Statements

+0

谢谢你们都是好的答案。不知道如何申请一个视图,感谢你的伟大范例,启动并运行:D – Mathnode 2010-08-17 09:23:37

0

,如果你想要的是显示短字符串,然后在SQL中完成 - 不要冗余存储数据。

如果你必须再次存储它,那么Basiclife就对了。