【问题标题】:UPDATE result of SELECT statement as if it were a view and display the result in MySQLUPDATE SELECT 语句的结果,就像它是一个视图并在 MySQL 中显示结果
【发布时间】:2018-05-23 18:29:42
【问题描述】:

假设我们有一张桌子Table1

----------------
| id |Col1|Col2|
----------------
|  1 | a  | 15 |
----------------
|  2 | a  | 25 |
----------------
|  3 | b  | 20 |

我想创建一个新视图,它显示与Table1 完全相同的值,但如果对应的 Col1 值为 a,则 Col2 值将更改为 30。我不想修改Table1

如何创建一个既能更新又能显示新表内容的视图?

我可以使用伪代码来演示我的意思背后的逻辑。

var tableOneTemp = SELECT * FROM Table1

更新 tableOneTemp
SET Col2 = 30
WHERE Col1 = a

SELECT * FROM tableOneTemp

然后视图将显示最终选择语句的结果。

【问题讨论】:

  • 请标记您的 dbms

标签: mysql sql


【解决方案1】:

使用Case(),如下所示:

CREATE VIEW tableOneTemp AS 
    SELECT id,Col1,(case when Col1 = 'a' then 30 else Col2 end) AS Col2
    FROM Table1;

SELECT * FROM tableOneTemp;

【讨论】:

  • a 周围缺少引号。然后将您的“var tableonetemp =”更改为“CREATE VIEW tableOneTemp AS”,这将是一个完美的答案
猜你喜欢
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
  • 2012-05-19
相关资源
最近更新 更多