SQL如何实现按数据范围查询

如图的表格(假设表名是Table),我要查询一个CPLSH范围,假如是00245-00300这个范围(并包含这2个边界数字)内的所有数据,并且要得出每个CPLSH的所有对应的信息,如ID,MAC,CPDM...等等。请问相应的SQL语句该如何写。
假如我要查询五个数据段范围:如00100-00150,000155-00200,00300-00400,00500-00600,00670-00680。用一个SQL语句来表示该怎么弄。
数据段打错了,是6位的。说明一下。不过这个不影响吧。

第1个回答  推荐于2016-01-07
SQL里面 像这种字符串存储的数字 可以直接比较大小
select * from table where CPLSH>='000100' and CPLSH<='000300'
多个范围的话就用or,比如
select * from table where (CPLSH>='000100' and CPLSH<='000300') or (CPLSH>='000305' and CPLSH<='000400')
有几个范围加几个范围追问

将CPLSH>'000100' and CPLSH<'000300'换成

between 000100 and 000300可以不。
还有就是这俩种表示范围的方法,哪一种查询方式会比较快。因为要查询的数据库数据量非常大,有几百万条。

追答

可以用between;
用字符串存储数字来比较大小是没什么效率的,我这里没有那么大的数据可以测试,你可以两个试一试

追问

嗯。好的。

本回答被提问者和网友采纳
相似回答