ОБНОВЛЕНИЕ результата оператора SELECT, как если бы он был представлением и отображал результат в MySQL - PullRequest
0 голосов
/ 23 мая 2018

Предположим, у нас есть таблица Table1

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

Я хотел бы создать новое представление, которое отображает точно такие же значения, как Table1, за исключением того, что значения Col2 изменяются на 30, если соответствующиеЗначение Col1 является.Я не хочу изменять Table1.

Как я могу создать представление, которое ОБНОВЛЯЕТ и отображает содержимое этой новой таблицы?

Я могу использовать псевдокод, чтобы продемонстрировать только логику позадичто я имею в виду.

var tableOneTemp = SELECT * FROM Table1

ОБНОВЛЕНИЕ tableOneTemp
SET Col2 = 30
ГДЕ Col1 = a

SELECT * FROM tableOneTemp

В этом случае представление будет отображать результат последнего оператора выбора.

1 Ответ

0 голосов
/ 23 мая 2018

Используйте Case() как показано ниже:

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

SELECT * FROM tableOneTemp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...