gpt4 book ai didi

mysql - perl-DBI 中十进制值之间的近似选择

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

我是通过使用此查询开发数据库表

create table test(
id varchar(10),
alpha varchar(1000),
marks decimal(10,4)
);

标记中应使用十进制数据类型。

marks column
1100.2523
1100.2722
733.8375
1192.257
587.6248
392.0859

我应该用来选择查询

select * from test where marks="1100.2625";

select * from test where marks="392.0252";

输出为空集(0.00 秒)

预期输出为

1100.2523 1100.2722 and 392.0859 this rows.

是否可以在小数范围之间进行选择。?

最佳答案

使用查询通常不可能实现这一点,为此您需要为近似值定义基准。

现在,如果您为近似值设置了基准,并且可以说它是这样的

  1. 如果标记和比较值相同,四舍五入到第一个小数点,则匹配。
  2. 如果四舍五入到第一个小数点后标记并输入并取差值,则值为 1-1 则匹配。

使用上述基准测试可以完成。

考虑下表

mysql> select * from test ;
+------+-------+-----------+
| id | alpha | marks |
+------+-------+-----------+
| 1 | aa | 1100.2523 |
| 2 | bb | 1100.2722 |
| 3 | cc | 392.0859 |
+------+-------+-----------+


mysql> select * from test where round(marks,1) = round(1100.2625,1);
+------+-------+-----------+
| id | alpha | marks |
+------+-------+-----------+
| 1 | aa | 1100.2523 |
| 2 | bb | 1100.2722 |
+------+-------+-----------+


mysql> select * from test
where round(marks,1) = round(392.0252,1)
or round(marks,1) - round(392.0252,1) = 0.1
or round(marks,1) - round(392.0252,1) = -0.1;
+------+-------+----------+
| id | alpha | marks |
+------+-------+----------+
| 3 | cc | 392.0859 |
+------+-------+----------+

关于mysql - perl-DBI 中十进制值之间的近似选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29789964/

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