gpt4 book ai didi

mysql - MySQL 计算字段中的整数

转载 作者:行者123 更新时间:2023-11-29 14:16:55 25 4
gpt4 key购买 nike

我正在尝试查询 MySQL 数据库。以整数形式存储在数据库中的字段以整数形式返回,这正如我所期望的那样。当存储过程中计算出一个值时,它总是以 longlong 形式返回,即使我可以保证该数字为 0 或 1。

我需要一种方法来确保计算字段的结果仍然以 int 形式返回。

有趣的是,在 View 中进行计算,然后查询该 View 似乎可以解决问题,但这会对性能造成巨大影响。

编辑

我尝试使用的各种过程的示例是:

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 命令返回具有单个字段(计数)的记录,该字段的类型为 longlong(8 字节)。我希望它是整数类型(4 字节)

SELECT (Select 1) as count;

按如下方式使用强制转换也没有帮助:

SELECT cast((Select 1) as signed integer) as count;

最佳答案

如果你只转换计算出的值会怎样?

cast((
Select sum(COALESCE(v.Cost, 0))
from variations v
where v.projectID = p.projectID
)
as integer
) as total

关于mysql - MySQL 计算字段中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12492327/

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