LIMIT in pg

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Vincent

Vincent

07/02/2008 11:29:00
Quote Anchor link
Heey,

Korte vraag:
Ik probeer limit te doen in Postgresql
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT *
FROM berichten
ORDER BY id DESC
LIMIT 0,10


Maar dan krijg ik de volgende error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
ERROR:  LIMIT #,# syntax is not supported
HINT:  Use separate LIMIT and OFFSET clauses.

Naar mijn weten hoort deze wel gewoon te werken in mysql maar die heeft andere regels.
Weet iemand hoe ik dit werkend kan krijgen in Postgresql.
Heb al aantal dingen geprobeerd maar wil maar niet lukken

Groeten, Vincent
 
PHP hulp

PHP hulp

04/12/2024 09:59:35
 
- SanThe -

- SanThe -

07/02/2008 11:32:00
Quote Anchor link
Probeer de HINT eens.
 
Vincent

Vincent

07/02/2008 11:33:00
Quote Anchor link
Ik heb dat nog nooit gebruikt die OFFSET's dus is het me daarmee ook niet gelukt zoals ik al zei: "Heb al aantal dingen geprobeerd maar wil maar niet lukken"
 
Gerben Jacobs

Gerben Jacobs

07/02/2008 11:33:00
Quote Anchor link
dus "LIMIT 10 OFFSET 0"?
 
Vincent

Vincent

07/02/2008 11:34:00
Quote Anchor link
huh wtf gerben, mokerz makkelijk en ik zag em niet O.o
Iig bedankt =)
 
Thijs Damen

Thijs Damen

07/02/2008 11:41:00
Quote Anchor link
Limit werkt iets anders in postgresql,

wat je probeert in sql daar is de eerste 10 resultaten weer te geven.

in postgresql zou je dat doen door LIMIT 10 OFFSET 0

voor meer informatie over de manier waarop LIMIT en OFFSET gebruikt moet worden kun je hier terecht

edit: Ik ben zo erg veel langzamer dan iedereen hier, afijn ;)
Gewijzigd op 01/01/1970 01:00:00 door Thijs Damen
 
Frank -

Frank -

07/02/2008 11:42:00
Quote Anchor link
Een flinke RTFM is hier wel op zijn plaats: RTFM!!
 
TJVB tvb

TJVB tvb

07/02/2008 11:46:00
Quote Anchor link
En als je het daar echt niet kunt vinden wijst google je nog de weg
 
Robert Deiman

Robert Deiman

07/02/2008 11:50:00
Quote Anchor link
Het is overigens aan te raden deze manier ook aan te leren en te gebruiken in MySQL. Het is gewoon volgens de standaard om LIMIT en OFFSET daarvoor te gebruiken.
Alleen MySQL accepteerd de comma notatie ook nog. Je kan het beste volgens de echte SQL standaarden werken, waarmee je zoveel mogelijk fouten voorkomt bij het overstappen naar een ander type database.
 
Frank -

Frank -

07/02/2008 11:56:00
Quote Anchor link
En daar ging Robert er met mijn 2 cents vandoor!

;)

Ps. Leer SQL met een database die zich (beter) aan de standaarden houdt. Ik zal geen namen noemen, maar versie 8.3 van deze niet nader genoemde database is net uitgebracht.
 
Robert Deiman

Robert Deiman

07/02/2008 12:00:00
Quote Anchor link
Tjah Frank, het viel me tegen dat jij daar nog niet over was begonnen. Maargoed..

Dwing als je MYSQL toch wil gebruiken deze op zijn minst in de strict modus:

KLIK
 
Vincent

Vincent

07/02/2008 17:45:00
Quote Anchor link
Mysql heeft andere standaarden maar accepteer Mysql ook de echte mysql standaard? Dus de dingen die je gebruikt zoals bij postgresql? De time/date fucnties etc?
 
Frank -

Frank -

07/02/2008 17:53:00
Quote Anchor link
Andere standaarden... Poep is inderdaad ook een standaard en daar zit standaard ook een bijzonder luchtje aan. (ik hou het netjes ;) ) Met MySQL gaat dat net zo, er is een `standaard` MySQL-dialect (met een bijzonder luchtje) en je hebt de ANSI-standaard. Laat andere databases nu ook de ANSI-standaard gebruiken (niet helemaal 100%, maar het komt in de buurt), dan is het dus wel zo handig om je aan de standaard te houden.

Vandaar dat het zo klote is dat menig prutser zijn SQL-avonturen begint met MySQL, nadat je jezelf hebt opgewerkt tot MySQL-kenner, ken je nog steeds geen SQL! Begin je bv. met PostgreSQL, dan leer je de ANSI-standaard met wat pgSQL-uitzonderingen en kun je zo met een andere database aan de slag.

Mocht je een held zijn en toch SQL willen leren met MySQL, stel hem dan in op ANSI-SQL, dan lijkt het tenminste nog ergens op. Doe je dat niet, vergeet dan het SQL-dialect dat je met MySQL hebt geleerd, dat gaat echt niet werken op een andere database.

Voor de juiste functienamen in pgSQL pak je even de handleiding er bij, die hoor je altijd voor je neus te hebben. In hoofdstuk 9 worden alle functies besproken, ook de datum- en tijdfuncties.
 
Crispijn -

Crispijn -

07/02/2008 18:08:00
Quote Anchor link
Ook wel mooi hoe het in de handleiding van mysql staat:

Quote:
For compatibility with PostgreSQL, MySQL also supports the LIMIT row_count OFFSET offset syntax.


Heeft alleen PostgreSQL dan deze notatie? Lijkt mij niet als pgSQL zich wel houd aan de ANI standaard...
 
Frank -

Frank -

07/02/2008 18:24:00
Quote Anchor link
@Crispijn: Ook pgSQL houdt zich niet 100% aan de ANSI-standaarden, maar komt daar wel dicht in de buurt. pgSQL-dialect (laat ik het zo even noemen) wordt ook beter ondersteund door andere databases, bv. Oracle en MySQL (zie het voorbeeld van de OFFSET).

pgSQL is voor vele databases een voorbeeld en dankzij de open source zijn de goede ideeen van pgSQL redelijk eenvoudig te implementeren.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.