我是使用此查询开发的数据库表
create table test(
id varchar(10),
alpha varchar(1000),
marks decimal(10,4)
);
在marks
中应使用decimal数据类型。
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";
输出为Empty set (0.00 sec)
预期输出
1100.2523 1100.2722 and 392.0859 this rows.
如果可以在十进制范围之间选择。?
答案 0 :(得分:1)
这通常不可能使用查询,因此您需要为近似定义基准。
现在,如果你为近似设置了一个基准标记,那么就把它说成是
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 |
+------+-------+----------+