gpt4 book ai didi

Mysql - 转换非空值第 2 部分

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

In this question我询问 Mysql 是否有一个函数,它接收两个参数,如果第一个参数为 null,则返回 null,否则返回第二个参数。评论区有人说不存在这样的功能。考虑到它可以接收任何类型的参数并且返回值可以为 null 或与第二个参数相同的类型,我如何在 Mysql 中定义这个函数?这可能吗?

最佳答案

根据您的要求,这是不可能的。

存储函数(用 SQL 编写)和用户定义函数(用 C 编写)的参数和返回值都是静态类型的。

诚然,MySQL 在隐式转换方面非常灵活,但值仍然是类型化的。即使您可以接受隐式转换,也很难想象这比看似显而易见的解决方案更可取的场景。

IF(foo IS NULL,foo,bar) 足以达到目的并正确保留底层类型,并且 IF(foo IS NULL,NULL,bar)尽管 foo 的类型会丢失(例如“它是 NULL DATETIME”),但几乎是相同的事情。

您之前曾拒绝过这些,原因并不直观。当一个目的可以通过内置功能来实现时,重新发明轮子的动机就很难理解了。

关于Mysql - 转换非空值第 2 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36342471/

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