我试图查询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