2 u010033157 u010033157 于 2017.09.02 00:00 提问

MySQL 下执行 SQL 查询语句 WHERE 条件正确,但是没有结果

查询过程
上面是在表中的数据,price 字段类型是 float,无论是在命令行还是 Navicat 中执行查询都会显示没查到,条件改为 >= 就显示全部数据,改为 <= 也显示无数据,其他数据也是这个情况,按照 name 查询就可以,请问这是哪里的问题?

3个回答

ShewMi
ShewMi   2017.09.02 09:15
已采纳

你使用float存在精度,你查询和显示的只是近似值,可以使用decimal类型,显示的是准确值不会有精度,或者限制float或double的精确位数为2位

number1killer
number1killer   2017.09.02 09:55

可以试试“3.49”,加个双引号。

u010033157
u010033157   2017.09.02 12:44

建表的时候没有指定 float 精度会有这个问题,应该指定精度。另如果数据库中的字段是金额应该用 decimal 类型存储,并且也需要指定精度。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Mysql数据库查询符合where条件的某几条结果sql语句
select * from tbl_files where p_id = ?  and file_type = ?  order by time desc limit ?,?  其中,where、order by、limit 的顺序必须是where  ...  order by .... limit 3,9. 3和9分别代表查询从第3条开始的 9条数据。
sql语句中如何根据不同的条件,执行不同的where条件
我的表达能力有点欠缺,标题说的有点绕,直接上demo吧。。。 需求:1.选出当日04:00--次日02:00之间,TABLE表中DateTime字段中最小值和最大值             2.同时需保证,该记录在系统时间00:00-02:00之间也可以查询到             3.判断当前时间是否处于最小值和最大值之间 Sql语句: select s.FirstTime as
MySQL中动态生成多条件查询语句
        在做搜索页面时,我们经常会遇到多条件查询,且这些条件是不定的,也就是说当用户输入的条件参数为空时,该条件是不应该加到SQL语句中去的。举例来说,我们要对一个产品表product进行搜索,可能的条件是这样的:1、价格为100;2、产品名包含关键字p,写成条件就是WHERE price = 100 AND name LIKE %p%,问题是这里的100和关键字p都是用户进行的选择或
mysql的where查询语句后有多个“or”的SQL语句执行分析!
mysql的where查询语句后有多个“or”的SQL语句执行分析看到一篇文章里面提到where查询语句后有多个“or”的SQL语句执行分析,原来没有碰到这样的情况,做个实验测试下,详细过程如下:一个数据表person有3个字段,都有索引。mysql> show index from person;+--------+------------+----------+--------------+-
关于数据库查询语句中的where 1=1条件的应用解析
where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。 select * from table1 where 1=1与select * from table1完全没有区别,其目的就只有一个,where 的条件为永真,得到的结果就是未加约束条件的。 其他的写法有:1'b' 此外,在不定数量查询条件情况下,1=1可以很方便的规范语句。 在java或其他语言中使用查询条件不定可以
SQL语句中的AND和OR执行顺序问题
情景:一个搜索框 可以同时根据用户账号或者用户名字 搜索匹配条件的用户 如果搜索框中没有搜索条件 则查出所有教师用户 遇到的问题: 查询条件时为输入框内的内容 先在数据库中模拟测试 结果查询结果不符合 分析: 问题的关键就在于AND和OR的执行顺序问题。 查阅资料,关系型运算符优先级高到低为:NOT >AND >OR 如果where 后面有OR条件
在MySQL中阻止UPDATE, DELETE 语句的执行,在没有添加WHERE条件
如果在生产环境中使用UPDATE,DELETE语句操作数据,此时如果忘记携带本应该添加的WHERE条件,后果可能不堪设想。在正常的业务情况,也不会更新或者删除所有的记录 1. 阻止update设置(sql_safe_updates) sql_safe_updates这个MySQL自带的参数就可以完美的解决我们的问题,并且该参数是可以在线变更的哦~当该参数开启的情况下,你必须要在UPDATE语句
sql IF条件查询
查询语句中使用IF语句
MSSQL查询语句条件是否为NULL
要查询C列为空的记录的SQL语句不是select * from table where c=null; 或者 select * from table where c=''; 而应当是 select * from table where c is null; 相反地要查询不为空的则应当是 select * from talbe where c<>''; 或者 select * from table
解决:hibernate+mysql中文查询不出结果,SQL语句也正常
今天做一个项目挣点外快hibernate+mysql数据库,Java后台全部正常,查看Java想数据库发送的语句也是正常的,但是中文就是查询不出结果,中文在Java中没有乱码,用new String(or_name.getBytes("ISO-8859-1"), "UTF-8"); 后台没有乱码,尝试了网上的很多方法都不行,getString或者getParamter都不行 最后感觉是mysq