Mysql函数转换非空值

时间:2016-03-31 19:07:47

标签: mysql sql

我想知道mysql是否有一个接收两个参数的函数,如果第一个为null,则返回null,否则返回第二个。

这将是if(something is null, null, anotherthing)的快捷方式。

1 个答案:

答案 0 :(得分:1)

不幸的是,没有yor行为的功能,但是如果你拥有权限就很容易创建自己的功能,另外你也可以像你已经展示的那样在查询中添加IF THEN ELSE但是对你的问题没有答案。如果你想创建一个函数,那么你将遇到需要显式参数类型的问题,而且对于重载函数(相同的函数名称但不同的参数类型),遗憾的是它也不起作用。因此,您需要具有不同功能名称的不同类型的不同功能。它看起来像那样:

    CREATE FUNCTION `fmap_varchar`(e1 VARCHAR(255), e2 VARCHAR(255) )
    RETURNS VARCHAR(255) DETERMINISTIC
    RETURN IF(e1 IS NULL, NULL, e2);

您可能也需要注意正确的字符集,您也可以在return子句中指定它。

您已提供查询的解决方案:

    SELECT IF(something IS NULL, NULL, anotherthing) FROM your_table;