mysql 取不存在的数据时如何判断

发布于 2022-09-06 12:43:52 字数 721 浏览 13 评论 0

1.数据表两个字段,一个是年份(date型),一个是数字(int型),当我查询不存在的年份时,显示empty set(不知道为什么不是显示为null),本来使想在存储过程判断空的话,设置为0,但现在就是在存储过程写 xx=empty set会报错,写出xx=null无结果。请问这时该如何改写判断条件。知道的能不能帮忙解答一下?
2.以下是测试代码(navicat运行)和截图(命令行运行):

clipboard.png
BEGIN

DECLARE a,b int;
SELECT number into a FROM testTime WHERE time = 20171206;
IF (a = NULL) THEN
SET b = 1;

END IF;
SELECT b;
END

clipboard.png
3.百度的时候给的方案是用正则表达式判断,我想问问mysql有没有什么函数判断是否为数字的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

薆情海 2022-09-13 12:43:52

NULL 值的判断要用 isis not

where number is null

傲鸠 2022-09-13 12:43:52

1楼正解,另外empty set 是因为查询结果为空,就是没有符合的记录(如果是多条记录,回想列表一样展开,当成java的set就行),而不是null

醉生梦死 2022-09-13 12:43:52

不应该直接判断返回的值是否为NULL,因为存在符合条件的记录、但字段值为NULL的情况。
改成用count计数就可以了。

DECLARE a,b int;
SELECT count(*) into a FROM testTime WHERE time = 20171206;
IF (a = 0 ) THEN
SET b = 1;
℉服软 2022-09-13 12:43:52
-- ISNULL 能在查询的时候自动判断数据是否为 Null ,如果为 Null 就自动替换为 ‘’
 
SELECT ISNULL([time],'') FROM [TableName]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文