抱歉,我现在用的是sqlite,不支持top 1,它用limit 1限制结果只一条
select * from support_plate where b2_a2 > 3 LIMIT 1
在support_plate 表里的b2_a2列 已经是排过序的了,从上面这个表里搜b2_a2大于某个值的第一条记录,
比如说,有3.1和3.2两个值,一定要搜出来3.1这条
目前我用sqlite,结果都是正确的.我想,它可能就是按顺序比较,发现第一条满足的,就返回了.
我不知道在其它数据库上是不是也能得到同样的效果.万一别的数据库用什么二分查找,得到的结果可能就不是想要的了.
------解决思路----------------------
不加ORDER BY,第一条应该是主键或是聚集索引中的第一条,如果没有主键或是聚集索引,应该是表被插入的第一条记录。
------解决思路----------------------
各个数据库系统对无序扫描的处理可能都不一样
既想无序扫描,又想各个数据库都一样,无异缘木求鱼
------解决思路----------------------
我觉得 这个不确定的,你现在的结果是正确的,没几天 可能又不对了,可能返回的是3.2了。
要保证一定会返回小的那个,必须要用order by 在要排序的列上 建个索引就可以了,这样效率就高了