-1

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

limit $a,$b

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

查询失败:ERREUR: la syntaxe LIMIT #,# n'est pas supportée

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

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

4

2 回答 2

1

Postgres 语法与此处limit x offset y解释的一样。

如果变量仍有问题,可以用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
于 2013-05-01T15:44:25.760 回答
1

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

对我来说,PostgreSQL 对什么limit 0意思有一个非常直截了当的看法一点也不奇怪。不幸的是,我也不惊讶 MySQL 有一个相当特殊的观点。

于 2016-06-05T03:58:36.577 回答