postgresql的limit子句

时间:2013-05-01 15:35:52

标签: mysql sql postgresql

如何为Postgresql转换这个mysql限制子句:

limit $a,$b

可能不是特定的postgresql解决方案,而是sql标准

查询失败:ERREUR:la syntaxe LIMIT#,#n'estpassupportée

"select * from preference where (id_membre ='184') order by 1 LIMIT 0 OFFSET 8";    

使用mysql返回4行,使用postgresl返回0行!

2 个答案:

答案 0 :(得分:1)

Postgres语法为limit x offset y,如here所述。

如果您仍然遇到变量问题,可以使用where子句替换它。如果您有这样的查询:

select . . .
order by <something>

你可以得到你想要的东西:

select t.*  -- or list of columns without seqnum
from (select . . ., row_number() over (order by <something>) as seqnum
     ) t
where seqnum between $a and $a + $b

答案 1 :(得分:0)

限制0正在完全按照它所说的做。限制为0行!查询可能运行得非常快!

对我而言,PostgreSQL对limit 0的含义有着非常直观的看法,这一点并不令人惊讶。不幸的是,令我惊讶的是,MySQL对相同的

有一个相当特殊的观点