使用浮动mysql

ma8fv8wu  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(348)

我正在定制一个名为gravity forms的wordpress插件,现在该插件使用一个列作为数据类型float
现在我创建了一个全新的界面,用于显示提交的条目的详细信息,我在表单中有一组复选框,重力表单所做的是将字段\u编号作为浮点数添加,然后对其执行值
现在,对于我窗体上的一组复选框,它使用字段\的数字作为2,现在无论选中多少个复选框,2都保持不变,然后是一些点值,例如2.1代表一个特定值,然后2.2代表一个特定值,依此类推,取决于窗体中复选框的数量,最多n次。请看下面的图片了解更多信息!

重要提示!我不能将float的数据类型更改为其他类型,例如vahrchar或decimal,因为它完全弄乱了插件
现在我确实很难得到float值,因为float并不是那么可靠,也不容易使用。我看到过其他博客,人们更喜欢double或decimal而不是它
我的主要问题是这个问题,

SELECT value FROM wp_rg_lead_detail WHERE lead_id=".absint( $lead['id'] )." and field_number=2.4

现在运行这个查询,我没有得到任何结果,所以我所做的是修改我的查询,并通过十进制值!

SELECT value FROM wp_rg_lead_detail WHERE lead_id=".absint( $lead['id'] )." and CAST(field_number AS DECIMAL) = CAST(2 AS DECIMAL)

现在这个查询工作得很好,返回了行数,但问题是它缺少一些数据,没有返回所有数据。例如,如果我有5行,你可以看到,在上面的图像中,它只返回三行,跳过两行!有什么帮助吗?

zpjtge22

zpjtge221#

如果您想与2进行比较,则可能需要截断而不是强制转换,例如:

SELECT value 
FROM wp_rg_lead_detail 
WHERE lead_id=".absint( $lead['id'] )." 
    and truncate(field_number,0) = 2

相关问题