MySQL中如何创建展示修改后数据的视图(不修改原表Table1)
创建满足需求的SQL视图
这事儿其实不用绕临时表的弯子,直接在视图的查询逻辑里加个条件判断就能搞定,完全不会改动原表Table1的数据。
你可以用CASE语句来动态处理Col2的值,创建视图的SQL语句如下:
CREATE VIEW View_Table1 AS SELECT id, Col1, -- 当Col1为'a'时返回30,否则保留原Col2值 CASE WHEN Col1 = 'a' THEN 30 ELSE Col2 END AS Col2 FROM Table1;
逻辑说明:
- 视图会实时读取原表Table1的数据,通过
CASE条件判断对Col2进行动态替换:- 如果Col1的值是
'a',就返回30作为Col2的展示值; - 其他情况直接保留原表的Col2数值。
- 如果Col1的值是
- 整个过程不会对原表执行任何更新操作,完全符合你“不能修改原表”的要求。
当你查询这个视图时(SELECT * FROM View_Table1;),得到的结果就是你伪代码里想要的最终效果:
| id | Col1 | Col2 |
|---|---|---|
| 1 | a | 30 |
| 2 | a | 30 |
| 3 | b | 20 |
内容的提问来源于stack exchange,提问作者suleydaman
相关产品推荐
相关产品推荐

