解决方案 »

  1.   

    思路:第一次抽取10条记录,将里面的主键(id)查询出来,拼接成 Str=“1,2,3”; 这样的字符串,,sql 语句 查询随机的 10条数据,只要语句后面带上  主键(id) not in (str) 就可以了。。去掉已经查询的前n 条数据即可
      

  2.   

    用id啊。id自增的话直接用id判断,第一次<10, 第二次10<x<20
      

  3.   

    http://blog.sina.com.cn/s/blog_552528460101evzl.html
      

  4.   


    如果这张表内容上E. 
    如果抽取次数上万.
    使用not in这个效率我不敢想象啦
    我有个做法  不知是否可行.
    每次若取X条,就查Y条.Y是X的倍数
     在缓存中建立集合.存下X
    下次查询时, 在程序中比对结果集和X集合.
    若不重复的大于每次所需的, 就取出来.我描述的好像有点混乱.  意思就是把这些判断做在客户端,不要做在服务端.减少服务器压力
    我好像跑题了
      

  5.   

    拼接成 Str=“'1','2','3'”; 这样的字符串
      

  6.   

    根据ID来吧 如果ID不是数字 根据时间什么的来也行 
    先排序 然后取
      

  7.   


    如果这张表内容上E. 
    如果抽取次数上万.
    使用not in这个效率我不敢想象啦
    我有个做法  不知是否可行.
    每次若取X条,就查Y条.Y是X的倍数
     在缓存中建立集合.存下X
    下次查询时, 在程序中比对结果集和X集合.
    若不重复的大于每次所需的, 就取出来.我描述的好像有点混乱.  意思就是把这些判断做在客户端,不要做在服务端.减少服务器压力
    我好像跑题了
    数据做多只有几百条,还有这个not in的效率低是怎么知道的?我不懂这些数据库的知识,只知道一些简单的SQL语句,请问应该如何学习?
      

  8.   


    如果这张表内容上E. 
    如果抽取次数上万.
    使用not in这个效率我不敢想象啦
    我有个做法  不知是否可行.
    每次若取X条,就查Y条.Y是X的倍数
     在缓存中建立集合.存下X
    下次查询时, 在程序中比对结果集和X集合.
    若不重复的大于每次所需的, 就取出来.我描述的好像有点混乱.  意思就是把这些判断做在客户端,不要做在服务端.减少服务器压力
    我好像跑题了
    数据做多只有几百条,还有这个not in的效率低是怎么知道的?我不懂这些数据库的知识,只知道一些简单的SQL语句,请问应该如何学习?
    sql这个么...  如果想细学,
    只能买数据库的书了
    平时只是用用的话. google足够了~
      

  9.   

    如果是大数据,上面的not in 肯定 是不支持的。。当然我这个需求也是根据他的实际需求而给的,,如果说上E的数据。。也提供一种办法吧,使用字段标识,每抽取10条左右数据,在数据表中有一个字段标识为已选,,(LS所说的每次抽选上W的数据感觉跟页面不符合吧,如果每个页面显示上W数据,那么多好的服务器都承受不了),select 随机10条数据 from table where flag !=0;(flag为标识)