gpt4 book ai didi

mysql - MySQL 脚本的条件部分

转载 作者:行者123 更新时间:2023-11-29 07:28:31 25 4
gpt4 key购买 nike

有时我会编写长查询或一系列查询并将它们保存为 SQL 文件以便稍后运行。有时,我最终会注释掉部分查询,以便得到略有不同的结果。我想知道是否有某种机制可以直接在查询/脚本中使用来控制运行哪些代码行。这是一个非常简单的例子:

SET @report = 1; 

SELECT
c1,
c2,
c3
FROM
table1

##if @report = 1##
WHERE
c1 = true
and c2 = true
GROUP BY
c1

##if @report = 2##
WHERE
c1 = false
and c2 = true
GROUP BY
c1,
c2
;

附加说明我应该提到的是,大多数时候这些都是从 MySQL Workbench 运行的。尽管它可以从另一个 IDE/工具运行。

回答德鲁和萨沙·帕切夫都给出了很好的答案,都值得一看。

  1. 存储过程
  2. 准备好的声明

最佳答案

将其插入存储过程中。重新审视它们并调整它们。放下它们。它们可以成为您的小沙箱,供您在需要时使用。

当你使用过程和函数时,那么 if then else 语句就会向你开放。

存储过程

drop procedure if exists doTodaysThing001;
DELIMITER $$
CREATE procedure doTodaysThing001 (IN someParam INT)
BEGIN

IF (someParam=7) then
select "seven";
-- ...
-- ...
END IF;

-- some other stuff

if someParam=3 then
select "three";
END IF;
END
$$
DELIMITER ;

测试一下

call doTodaysThing001(3);

另一个方面是准备好的语句,也可以使用 concat() 和绑定(bind)直接在存储过程中使用。如果您需要这方面的帮助,请直接询问。

关于mysql - MySQL 脚本的条件部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638963/

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