Mysql 中LIMIT有关问题

wang_liran 发布于 2013/10/25 15:52
阅读 287
收藏 0

需求:查询第5行之后所有数据

网上查询结果:LIMIT 5,-1

实际报错:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 5

请问各位这是为何?我该如何实现这个需求?

加载中
0
iSea
iSea
语法错误,limit [m,] n   语法是这样的,m:为起始行,从0开始,且可以省略不写,n:为查询记录数,不能为负数 ,你可以查询id>你要排除的5个id的最大值或者id<你要排除的5个id的最小值
wang_liran
wang_liran
回复 @iSea : 非常感谢,感谢给了我一个思路
iSea
iSea
回复 @iSea : 如果数据很大,肯定会有些影响的,这样写不知道能否符合你的需求:SELECT SUM(PROLIKE) FROM PRODUCTS WHERE BUSINESSID=3 and PROLIKE < (SELECT PROLIKE FROM PRODUCTS ORDER BY PROLIKE DESC LIMIT 4,1) ORDER BY PROLIKE DESC
wang_liran
wang_liran
回复 @iSea : 原来没有这个语法了,如果这个n数字太大会不会对性能有影响
iSea
iSea
回复 @wang_liran : 如果仅仅是求和的话,你可以把-1改为比你的数据足够大的数,
iSea
iSea
回复 @wang_liran : 5.0之后的版本没有这个语法了。
下一页
0
戴威
戴威
贴上完整的SQL
wang_liran
wang_liran
SELECT SUM(PROLIKE) FROM PRODUCTS WHERE BUSINESSID=3 ORDER BY PROLIKE DESC LIMIT 5,-1
0
Tuesday
Tuesday
感觉楼主是写php写多了...
0
lisa-ding
lisa-ding
你的问题可以通过存储过程来实现,具体参考这个 http://zhidao.baidu.com/link?url=ts4ZmzQXQQMi0Uj6wcmMwBMWOGNEjCE7I75L8lR9t-MSYWuoasqcEthAka2rUpDlXQviYAeuFwTcYnqPKoCIXq
wang_liran
wang_liran
这个思路我想过,可是太麻烦了,我想知道为什么官方要取消这个语法?
0
LucEsape
LucEsape
没有负数的。。
0
月影又无痕
月影又无痕

limit M, N

意思是偏移为M,再取N条记录。

limit 0, 2  从第1条记录开始取2条

所以你的需求实质上是limit 4, 1

返回顶部
顶部