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