mysql - 使用乘法查询的结果不一样?

标签 mysql

我无法使用查询获得预期的结果,我也不知道为什么。你能帮我解释一下吗? 所以基本上我只运行这样的标准查询:

SELECT a.bimbel_kode,c.kriteria_kode,d.pencarian_kode, b.osk_val,d.bsk_val,
        ((d.bsk_val/100)*b.osk_val) as total
FROM bimbel_sub a 
    INNER JOIN opsi_sub_kriteria b ON a.osk_id=b.osk_id
    INNER JOIN sub_kriteria c on b.sk_id=c.sk_id
    INNER JOIN bobot_sub_kriteria d ON c.sk_id=d.sk_id
WHERE d.pencarian_kode='KDS7808b075'

总的来说,我无法得到我想要的结果。

这是我从查询中得到的结果 enter image description here

for the total must be like this
total = (bsk_val/100) * osk_val
total = 50/100 * 4
total = 2
But why my reults be 0.12 ?

这是我的 fiddle fiddle

最佳答案

您的答案是因为您使用的是 ENUM。将 ENUM 转换为整数时,您得到的是它的序列而不是它的值(因此 100 是 1,75 是 2,50 是 3,25 是 4,等等)。

如果你想避免这个问题,你应该将其转换为 varchar/char,然后再转换回来:

CAST(CAST(d.bsk_val AS CHAR) AS SIGNED) / 100 * b.osk_val

关于mysql - 使用乘法查询的结果不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59634127/

相关文章:

mysql - 在不插入新行的情况下复制两个表之间的列

php - 尝试将 MySql 数据库行转换为链接,以便用户可以选择他们想要查看的内容

java - 如何在 java、MySQL 和 Tomcat 6 中使用连接池

MYSQL 左连接不正确的结果

php/mysql 更新非常大的表的更好选择

mysql - 如何正确定义尚未到达完成日期

php - MySQL 未在表中找到特定行

mysql - Spring Boot 数据源异常关闭

mysql - ActiveRecord 搜索具有条件的字段

sql - mysql 查询对某些结果进行排序,但连接数据可能存在或不存在