2013-05-01 2 views
-1

, как я могу преобразовать этот предел пункт MySQL для Postgresql:предел пункт с PostgreSQL

limit $a,$b 

, когда это возможно, не конкретное решение PostgreSQL, а скорее стандарт SQL

запросов не удалось: ERREUR: ла syntaxe LIMIT #, # n'est па supportée

EDITION

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

вернуть 4 строки с mysql, 0 строк с postgresl!

+0

Простой взгляд на точное руководство разрешил бы его. –

+0

eh no .........! – Bertaud

ответ

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 
+0

после нескольких тестов, кажется, что предел $ a, $ b нельзя перевести в пределе $ смещение $ b (см. Мое издание). И почему этот -1?! – Bertaud

0

Limit 0 делает именно то, что он говорит, что это делает. Ограничение до 0 строк! Запрос, вероятно, тоже работает очень быстро!

Неудивительно, что PostgreSQL имеет очень буквальное представление о том, что означает limit 0. И, к сожалению, мне неудивительно, что MySQL имеет довольно своеобразный взгляд на то же самое.

Смежные вопросы