gpt4 book ai didi

mysql - 如果为 NULL,则返回零

转载 作者:可可西里 更新时间:2023-11-01 11:14:12 26 4
gpt4 key购买 nike

我有一段 MySQL 正在命中一些空记录,如果 NULL,我该如何设置它以返回 0?谢谢!

试过这个:

sprintf(queryString, "SELECT COUNT(*) FROM tblURLIP
WHERE IP = '%s' AND IPStatus = '1' AND IPMax = '0'
AND IPType ='3'", ipSrc);

没用:

sprintf(queryString, "SELECT COUNT(*) FROM tblURLIP 
WHERE IP = '%s' AND IPStatus = '1' AND IPMax = '0'
AND IPType ='3'", ipSrc,NULL),0);

最佳答案

您通常可以将返回 NULL 的内容包装在 coalesce function 中这给你第一个非空值:

select coalesce (some-nullable-thing, 0 ) from ...

但是,count() 不应永远 返回 NULL。如果没有满足条件的记录,则返回0。

如果您的问题不在于 SQL 而在于 ipSrc 本身为 NULL,那么在使用 sprintf 处理它之前对其进行变形是一件简单的事情。要将 NULL 转换为 0 并保持其他所有内容不变,您可以使用类似的东西:

sprintf (queryString,
"SELECT COUNT(*) FROM tblURLIP"
" WHERE IP = '%s'"
" AND IPStatus = '1'"
" AND IPMax = '0'"
" AND IPType ='3'",
(ipSrc == NULL) ? "0" : ipSrc); // <-- conversion happens here.

这似乎是您想要的行为。

关于mysql - 如果为 NULL,则返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7643732/

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