gpt4 book ai didi

mysql - 防止在 IF 语句中调用函数两次

转载 作者:搜寻专家 更新时间:2023-10-30 22:14:43 24 4
gpt4 key购买 nike

如何防止这个函数执行两次,它会执行两次还是mysql优化这个?

IF(CheckTest(node.id, 1) == 0, NULL, CheckTest(node.id, 1)) as val

我无法从函数本身返回 NULL 的问题,因为返回值是 VARCHAR,所以即使它是空集也会被转换回 0。

最佳答案

正如@joachim-isaksson 所指出的,MySql 似乎没有对其进行优化。所以你可以使用这个:

SELECT
CASE WHEN (@check:=CheckTest(node.id, 1)) = 0 THEN NULL ELSE @check END as val

关于mysql - 防止在 IF 语句中调用函数两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861135/

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