假设我们有一张表Table1
----------------
| id |Col1|Col2|
----------------
| 1 | a | 15 |
----------------
| 2 | a | 25 |
----------------
| 3 | b | 20 |
我想创建一个新 View ,它显示与 Table1
完全相同的值,但如果相应的 Col1 值为 a,则 Col2 值更改为 30。我不想修改 Table1
。
我如何创建一个既更新又显示新表内容的 View ?
我可以使用伪代码来演示我的意思背后的逻辑。
var tableOneTemp = SELECT * FROM
Table1
UPDATE tableOneTemp
SET Col2 = 30
WHERE Col1 = aSELECT * FROM tableOneTemp
然后 View 将显示最终选择语句的结果。
最佳答案
像下面这样使用 Case()
:
CREATE VIEW tableOneTemp AS
SELECT id,Col1,(case when Col1 = 'a' then 30 else Col2 end) AS Col2
FROM Table1;
SELECT * FROM tableOneTemp;
关于mysql - 更新 SELECT 语句的结果,就好像它是一个 View ,并在 MySQL 中显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50484974/