gpt4 book ai didi

MySQL过滤可能的空值

转载 作者:行者123 更新时间:2023-11-29 03:42:45 26 4
gpt4 key购买 nike

我正在编写一个采用单个日期时间参数的 mysql 存储过程。它在 select 语句中使用它..

select *
from table
where date >= @datefrom or @datefrom is null

当我编写 t-sql 查询时,这通常可以解决问题,但它似乎不适用于 mysql。

我也尝试过其他变体,例如

where date >= ifnull(@datefrom, date)

还有

where ((date >= @datefrom and @datefrom is not null) or (@datefrom is null))

但我没有得到我期望的结果..

有人可以阐明这一点吗?

这样的过程定义..

CREATE DEFINER=`root`@`%` PROCEDURE `prc_xxxxxx`(datefrom datetime)
BEGIN

select * from table
where date >= @datefrom or @datefrom is null

END

然后我会这样调用..

call prc_xxxxxx ('2012-07-04 00:00:00')

call prc_xxxxx (null)

最佳答案

如前所述,@ 符号用于 session variables ,不适用于存储的例程参数——那些应该没有前缀。例如:

CREATE PROCEDURE `proc_IN` (IN var1 INT)  
BEGIN
SELECT var1 + 2 AS result;
END//

这个例子取自this tutorial .

关于MySQL过滤可能的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11324140/

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