gpt4 book ai didi

MySQL INSERT 在 CASE 中作为子查询

转载 作者:行者123 更新时间:2023-11-29 12:50:49 24 4
gpt4 key购买 nike

我遇到以下情况,我想仅使用 MySQL 来完成。

CASE 'some_boolean'
(
WHEN true THEN
//COMPLEX INSERT HERE
WHEN FALSE THEN
//DIFFERENT COMPLEX INSERT HERE
)
END

我知道我可以使用 PHP 来做到这一点,但代码会变得困惑,所以我更喜欢使用 MySQL,但我不知道语法应该如何,或者是否可以做到这一点。

谢谢:)

编辑:我所说的复杂是指它从 SELECT 中获取插入数据。

编辑2:这是我试图详细说明的 SQL。它有一些标有“:”的 PHP 输入。

CASE (SELECT IF(COUNT(*) > 0,true,false) AS structure FROM structures WHERE product_number = "123")
WHEN true THEN
INSERT INTO product_balance (product_number,balance)
(
SELECT :product_number, product_count * :order_count FROM structures WHERE product_number = :product_number
)
ON DUPLICATE KEY UPDATE balance = balance + (product_count * :order_count)
ELSE
INSERT INTO product_balance (product_number,balance)
VALUES(:product_number,:order_count)
ON DUPLICATE KEY UPDATE balance = balance + (product_count * :order_count)
END

最佳答案

语法:

IF condition1 THEN
{...statements to execute when condition1 is TRUE...}

[ ELSEIF condition2 THEN
{...statements to execute when condition2 is TRUE...} ]

[ ELSE
{...statements to execute when both condition1 and condition2 are FALSE...} ]

END IF;

示例:

DELIMITER //  
CREATE FUNCTION IncomeLevel ( monthly_value INT )
RETURNS varchar(20)\

BEGIN
DECLARE income_level varchar(20);

IF monthly_value <= 4000 THEN
SET income_level = 'Low Income';
ELSEIF monthly_value > 4000 AND monthly_value <= 7000 THEN
SET income_level = 'Avg Income';
ELSE
SET income_level = 'High Income';
END IF;

RETURN income_level;
END; //

DELIMITER ;

来源:http://www.techonthenet.com/mysql/loops/if_then.php

关于MySQL INSERT 在 CASE 中作为子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24753178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com