【问题标题】:Is it possible for mysql function to accept null data types on input?mysql 函数是否可以在输入时接受空数据类型?
【发布时间】:2023-03-28 17:45:01
【问题描述】:

就像这个错误的例子:

CREATE FUNCTION my_func(arg1 INT NULL, arg2 INT NULL)
...

因此,例如,可以对 db 中的整数列可能为零、正、负或 null 的情况做出逻辑反应(所以我不能有一个值来整理 null 到,零是有意义的) 这意味着数据不可用,并且当某些参数未知时,函数应在输出时返回 null,但在行中只有部分数据可用时执行稍微修改的算法版本。

或者可能存在像 C++ 中的函数重载?所以我可以编写多个函数:

CREATE FUNCTION my_func(arg1 NULL, arg2 INT)
...
CREATE FUNCTION my_func(arg1 INT, arg2 NULL)
...

【问题讨论】:

  • 您不必将函数参数声明为接受NULL,我认为它们总是可以的。您只需在功能代码中检查IF(arg1 IS NULL)即可。

标签: mysql function null type-conversion sqldatatypes


【解决方案1】:

您不需要声明函数参数可以是NULL。正常声明函数参数。在 SQL 中,您需要特别检查 NULL 的情况,因为您无法将空值与 = 进行比较(NULL = NULL 为 false)。

SELECT ...
WHERE ((arg1 IS NULL AND col1 IS NULL) OR (arg1 = col1))

【讨论】:

    猜你喜欢
    • 2011-11-12
    • 2022-06-15
    • 2010-10-13
    • 2021-04-03
    • 2012-01-27
    • 2014-03-02
    • 2010-10-31
    • 2017-11-15
    • 1970-01-01
    相关资源
    最近更新 更多