鍍金池/ 問答/數(shù)據(jù)庫/ mysql 取不存在的數(shù)據(jù)時如何判斷

mysql 取不存在的數(shù)據(jù)時如何判斷

1.數(shù)據(jù)表兩個字段,一個是年份(date型),一個是數(shù)字(int型),當(dāng)我查詢不存在的年份時,顯示empty set(不知道為什么不是顯示為null),本來使想在存儲過程判斷空的話,設(shè)置為0,但現(xiàn)在就是在存儲過程寫 xx=empty set會報錯,寫出xx=null無結(jié)果。請問這時該如何改寫判斷條件。知道的能不能幫忙解答一下?
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.百度的時候給的方案是用正則表達(dá)式判斷,我想問問mysql有沒有什么函數(shù)判斷是否為數(shù)字的?

回答
編輯回答
你好胸

1樓正解,另外empty set 是因為查詢結(jié)果為空,就是沒有符合的記錄(如果是多條記錄,回想列表一樣展開,當(dāng)成java的set就行),而不是null

2018年8月4日 12:39
編輯回答
伴謊

NULL 值的判斷要用 isis not

where number is null

2018年3月23日 12:43
編輯回答
亮瞎她

不應(yīng)該直接判斷返回的值是否為NULL,因為存在符合條件的記錄、但字段值為NULL的情況。
改成用count計數(shù)就可以了。

DECLARE a,b int;
SELECT count(*) into a FROM testTime WHERE time = 20171206;
IF (a = 0 ) THEN
SET b = 1;
2017年3月17日 04:28
編輯回答
有點壞
-- ISNULL 能在查詢的時候自動判斷數(shù)據(jù)是否為 Null ,如果為 Null 就自動替換為 ‘’
 
SELECT ISNULL([time],'') FROM [TableName]
2017年10月21日 23:36