我試圖查詢MySQL數據庫。以整數形式存儲在數據庫中的字段將按照我的預期以整數形式返回。當在一個存儲過程中計算出一個值時,即使我能保證該數字是0或1,它也總是被返回。MySQL的計算字段中的整數
我需要一種方法來確保計算字段的結果是仍然作爲int返回。有趣的是,在視圖中進行計算,然後查詢該視圖似乎可以解決這個問題,但它需要巨大的性能。
編輯
的各種各樣的程序我想使用將是一個例子:
DELIMITER //
CREATE PROCEDURE getProjectFinance(IN projectID varchar(30))
BEGIN
SELECT p.projectID as id,
(Select sum(COALESCE(v.Cost, 0))
from variations v
where v.projectID = p.projectID) as total
FROM Projects p
WHERE p.projectID = projectID;
END//
DELIMITER ;
DELIMITER //
CREATE PROCEDURE getAllProjectsFinance()
BEGIN
SELECT p.projectID as id,
(Select sum(COALESCE(v.Cost, 0))
from variations v
where v.projectID = p.projectID) as total
FROM Projects p
END//
DELIMITER ;
編輯2
我已經嘗試簡化問題略。下面的SQL命令返回一個單字段(count)的longlong類型(8字節)的記錄。我想這是整型(4個字節)
SELECT (Select 1) as count;
的使用投如下並沒有幫助:
SELECT cast((Select 1) as signed integer) as count;
由於您在談論返回的值,我假設您正在討論存儲函數,而不是程序。你可以發佈你的商店功能的定義('顯示創建功能function_name'會有幫助)?它應該明確定義它的返回類型。 – lanzz
更新,我不知道我如何顯式定義返回類型。 – ForbesLindesay