想实现查询id号必须从1到18的数据,也就是说必须是从1到18连续出现的id才被选取,从2到18的或从n(2<=n<=18)到m(m!=18)的数据以及中间出现中断的数据均不被选取

解决方案 »

  1.   

    贴建表及插入记录的SQL,及要求结果出来看看
      

  2.   

    create table test (id bigint, describe varchar(100));
    insert into test (id,describe) values(记录号,记录描述);
    记录号连续出现,但是起始点和终止点不同,例如有从3到15的连续数据,后面也会有从4到9的连续数据,例表如下:
    id   describe
    1    string
    2    string
    3    string
    2    string
    3    string
    6    string
    3    string
    4    string
    5    string
    6    string
    7    string
    9    string
    10   string 
    想要的结果是从中选取id从3连续到18的数据
      

  3.   

    以数据为例
    id   describe   备注(想要取出的结果后标*)
    2    string
    3    string
    4    string
    5    string
    1    string     *
    2    string     *
    3    string     *
    4    string     *
    5    string     *
    3    string
    4    string
    5    string
    就是想把上述结果中id从1到5连续的数据取出(想要的结果后标*)
      

  4.   

    SET @a=0;
    SET @b=0;
     SELECT * FROM TTQA;
    SELECT id-1 INTO @a FROM ttqa LIMIT 1;
    UPDATE TTQA A INNER JOIN (
    SELECT PM,MIN(ID1) AS MI,MAX(ID1) AS MX FROM (
    SELECT *,
    @b:=IF( @a+1=id ,@b,@b+1) AS PM,
    @a:=ID
     FROM ttqa) G GROUP BY PM HAVING COUNT(*)>=5) C
     ON A.`id1` BETWEEN MI AND MX
     SET A.`备注`='*';
     SELECT * FROM TTQA