好的,我正在尋找一種方法來使某個字段等於3個其他字段的總和。我有3個不同的評級字段,然後是一個'總體評分'字段,我需要自動等於其他3的總和。我知道如何使用select語句檢索值,我只是希望它自動發生在桌子。 - 使用MySQL的SQL自動派生字段
回答
有不同的方式在不同的DBMS要做到這一點,例如虛擬列,
在甲骨文:
在SQL Serveroverall NUMBER GENERATED ALWAYS AS (rating1 + rating2 + rating3) VIRTUAL
:
[overall] AS (rating1 + rating2 + rating3) PERSISTED
可惜的是並非所有DBMS都支持虛擬列。
CREATE VIEW ratings_overall AS
SELECT rating1, rating2, rating3, (rating1 + rating2 + rating3) as overall
FROM source_table;
我使用MySQL,並且我已經在表中設置了列,正是我需要運行哪個查詢才能使其工作,或者它可以工作嗎?創建視圖運行良好,將其放在同一個表中可能更好。 – cameronjonesweb
您可以做兩件事,一種是在插入時插入適當的值('INSERT INTO your_table(...,rating1,rating2,rating3, (...,13,15,54,(13 + 15 + 54))')或更新(更新your_table SET ...,rating2 = 20,overall =(13 + 20 + 54)',你可以在表達式中使用列名,因爲MySQL從左到右評估這個語句,但這不是一個好習慣);另一種方式是批量更新,稱爲periodicaly('UPDATE your_table SET overall = rating + rating2 + rating3',如果您能夠區分要更新的行,則可能有WHERE條件)。 – WojtusJ
除非你正在研究像Data Warehouse這樣的VLDB,否則任何一種方法都不是一個好的解決方案。觀看這種任務,你應該使用它們。在目前的情況下,你會有冗餘和可能的不一致。 – WojtusJ
- 1. 來自派生類的訪問字段
- 2. 獨立的持久性派生字段和派生字段
- 3. Orbeon中派生的字段
- 4. 使用派生字段
- 5. 自動協變類派生
- 6. 自動使用派生類
- 7. SQL派生表
- 8. 派生表SQL
- 9. 派生自NSTabViewItem
- 10. Python派生類在派生類上自動運行類方法
- 11. 如何自動派生DataKinds派生類型的Typeable實例?
- 12. 帶有聯合的派生表中的SQL Server參考字段
- 13. SQL Server - 如何使用派生表計算字段?
- 14. SQL Server 2005派生字段瓦特/邏輯
- 15. 表上的派生狀態字段?
- 16. 獲取派生類的字段
- 17. 何處初始化派生字段?
- 18. 訪問派生類中的字段
- 19. 派生PartialEq時排除字段
- 20. 如何設置派生類的字段?
- 21. SQL派生表。 Easy SQL
- 22. 派生自動類裝飾(或驗證)
- 23. CouchDB自動生成的字段
- 24. mySQL - 如何自動生成字段值
- 25. 自動生成表單字段在PHP
- 26. MongoDB _id字段自動生成?
- 27. 在grails中自動生成字段
- 28. SQL Server:分別自動增加字段
- 29. 派生類型在代碼中使用TPH生成其自己的ForeignKey字段
- 30. 自動將C++ 11自動關鍵字重寫爲派生類型
是否使用的是RDBMS:最通用的(工作在大多數的DBMS)的方式來做到這一點,但可能是最適合你的需求(沒有數據庫結構變化需要)正在創建一個視圖,例如什麼樣的?有些可以讓你在表格上定義一個計算列,對於其他人(例如MySQL)你需要使用觸發器。 – McGarnagle
因爲postgresql不支持計算列(其他流行的免費數據庫),所以很可能您需要使用其他功能。例如。使用視圖或觸發器。如果您只需要選擇列,那麼最好在select語句中執行。如果您需要對其進行排序以提高效率,請在表達式上創建索引。 – ronalchn
使用MySQL,對不起 – cameronjonesweb