我想添加一個字段,如果可能的話,它包含來自同一個表中另一個字段的數據。在這種情況下,我希望table.newfield中的everythhing顯示table.oldfield中小於100的值。我可以在sql中執行此操作嗎?或者我應該堅持在報告的選擇查詢中這麼做嗎?mysql,根據現有數據創建字段
Mysql的InnoDB的5.1嚴格模式
我想添加一個字段,如果可能的話,它包含來自同一個表中另一個字段的數據。在這種情況下,我希望table.newfield中的everythhing顯示table.oldfield中小於100的值。我可以在sql中執行此操作嗎?或者我應該堅持在報告的選擇查詢中這麼做嗎?mysql,根據現有數據創建字段
Mysql的InnoDB的5.1嚴格模式
,一旦你已經添加了新列如
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
(以上部分的語法是未經檢查的,但應該是大致正確)
,如果你想要的是顯示短字符串,然後在SQL中完成 - 不要冗餘存儲數據。
如果你必須再次存儲它,那麼Basiclife就對了。
謝謝你們都是好的答案。不知道如何申請一個視圖,感謝你的偉大範例,啓動並運行:D – Mathnode 2010-08-17 09:23:37