是否可以在 MariaDB 的 SELECT IF 中 运行 INSERT
Is it possible to run an INSERT inside a SELECT IF in MariaDB
我正在尝试 运行 基于 IF 查询结果的 INSERT 查询。我尝试了各种语法。我不想使用 stored procedure
只是一个简单的查询。
这个有效:
select IF ( select sum(price) from my_table ) > 1000,
'high price',
'low price'
);
这甚至适用于 SELECT 查询。
select IF ( select sum(price) from my_table ) > 1000,
( select something ),
( select something else )
);
但是当我尝试用 INSERT 替换其中一个 SELECT 时,出现语法错误。
select IF ( select sum(price) from my_table ) > 1000,
( select something ),
( insert something )
);
我将 insert something
作为一个独立的查询进行了测试,它运行良好。
但是可以在 IF 表达式中使用它吗?
不,这是不可能的,除非你在程序块中(使用 stored procedure
)然后你可以这样做
IF(( select sum(price) from my_table ) > 1000)
BEGIN
( select something );
( insert something );
END
我正在尝试 运行 基于 IF 查询结果的 INSERT 查询。我尝试了各种语法。我不想使用 stored procedure
只是一个简单的查询。
这个有效:
select IF ( select sum(price) from my_table ) > 1000,
'high price',
'low price'
);
这甚至适用于 SELECT 查询。
select IF ( select sum(price) from my_table ) > 1000,
( select something ),
( select something else )
);
但是当我尝试用 INSERT 替换其中一个 SELECT 时,出现语法错误。
select IF ( select sum(price) from my_table ) > 1000,
( select something ),
( insert something )
);
我将 insert something
作为一个独立的查询进行了测试,它运行良好。
但是可以在 IF 表达式中使用它吗?
不,这是不可能的,除非你在程序块中(使用 stored procedure
)然后你可以这样做
IF(( select sum(price) from my_table ) > 1000)
BEGIN
( select something );
( insert something );
END