2010-08-16 33 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就對了。