急!!!!问大家一个sql

question表,id为主键
我想查询id尾号指定为几的所有记录
比如我想查尾号为1,2,6,7,0的所有记录。
高人请指点。。。。。在线等

作者: guoxiaoce111   发布时间: 2011-06-01

尾号是1的所有记录
SELECT * FROM `表` where id like '%1';

作者: sibang   发布时间: 2011-06-01

如果你有足够多的数据,按id尾数散到不同的表,然后再查

作者: gosenz   发布时间: 2011-06-01

二楼的方法不妥,我的数据量是很大的,3楼的想法更不行指定id是动态分配的,可能今天分配1,3,4,6明天5,7,9,0我得天天散步数据到不同表啊?既然都能散布了,肯定能查出来啊,还为什么要散布?有点儿逻辑矛盾哦。。。。

作者: guoxiaoce111   发布时间: 2011-06-01

我还能想到的就是
取出所有的数据来,然后判断id的最后一位,将结果写入多維數組内或直接缓存进json内提供使用

作者: sibang   发布时间: 2011-06-01

存数据的时候就进行散列。
对10求余,存到不同的10个表里。
取数据的时候要尾数几就取那个表。

作者: jldxrbt   发布时间: 2011-06-01

引用 5 楼 jldxrbt 的回复:
存数据的时候就进行散列。
对10求余,存到不同的10个表里。
取数据的时候要尾数几就取那个表。

我就是这个意思

作者: gosenz   发布时间: 2011-06-01

四楼你的想法是把所有记录放到多维数组里面,然后以记录的主键id为数组的key然后在去相应尾号的值,是这样吗?那该怎么取呢?还是按想要的尾号分配好了,再放到多维数组里面呢?那该怎么分配呢?

作者: guoxiaoce111   发布时间: 2011-06-01

就一个表,不能散步的,而且对10求余可以检索出我想要的结果吗?那我要是想要位数2,4,6,8呢?怎么对10求余检索呢?

作者: guoxiaoce111   发布时间: 2011-06-01

我想要尾数为2,3,4,5,8呢?

作者: guoxiaoce111   发布时间: 2011-06-01

那就得用like查询了,也就是1楼的方法,不过太耗资源了

作者: gosenz   发布时间: 2011-06-01

... or ... or ..

作者: zhangkai08111   发布时间: 2011-06-01

你最好描述清除业务需求、数据量。
说的太抽象,别人也不知道你想要干什么。

性能上没什么要求的话一条sql也能搞定。
还可以在这个条件上再附加上其它条件,进行排序等等。
SQL code

SELECT * FROM `question` WHERE `id` % 10 = 2 OR `id` % 10 = 3 OR `id` % 10 = 8

作者: jldxrbt   发布时间: 2011-06-01