先放SQL语句

select top n id from 表名 
where id not in (  
  select top m id from 表名  
)  

之前因为这个问题在网上找答案,结果让们都告诉我是这个:

这明显是扯淡!

连limit m,n的含义都没弄清楚,

limit m, m的含义

  • limit m,n是mysql的语法

    select * from table limit [m],n;

    其中,m—— [m]为可选,是偏移量,如果填写表示skip步长,即跳过m条;不填写表示默认为0;

      n——显示条数。指从第m+1条记录开始,取n条记录。

  • 而在网上的这个说法中把limit m,n定义成了获取m到n的记录数,这是不对的

  • limit m,n的意思是获取表中第m+1条开始往后n条的记录数
    也就是说,limit 8,5 表示获取表中的第(8+1)到(8+5)条记录数,而根据网上的说法5-8明显是行不通的!

测试

下面图中,左边是MySQL的表和操作结果,右边是SQLServer的表和操作结果,证明真正的实现limit m,n的代码应该是

select top n id from 表名 
where id not in (  
  select top m id from 表名  
)  

posted on 2019-09-06 14:54  AlenIves  阅读(6882)  评论(2编辑  收藏  举报