2010-06-12 10 views
6

MySQL hat ein nettes Feature (wenn auch nicht Standard), die erlauben Result Grenze, Offset- alsWelche Datenbank hat die SQL-Abfragesyntax "limit" erfunden?

SELECT * FROM TABLE LIMIT M, N; 

Ist es erstellt von MySQL abfragen? oder Postgres?

+1

Die MySQL-Syntax saugt, der erste Parameter hat zwei verschiedene Bedeutungen: Offset oder Limit. –

Antwort

3

Zwischen PostgreSQL und MySQL kopierte PostgreSQL die Syntax LIMIT von MySQL (in v6.5) und fügte die OFFSET-Syntax hinzu (es könnte sein, dass das auch kopiert wurde, aber ich denke, dass mysql nur die Kommasyntax zurück hatte) dann). Es wurde dann (7.2) geändert in nur erlauben "LIMIT foo OFFSET bar", weil die MySQL-Syntax unklar war.

10

Laut Wikipedia Rasmus Lerdorf (der ursprüngliche Schöpfer von PHP) zum ersten Mal der "LIMIT x" Syntax in der mSQL Datenbank:

er zu dem Server Apache HTTP beigetragen hat und er kam auch mit die LIMIT-Klausel und fügte sie der Datenbank mSQL 1995 hinzu. Sie ist der Ursprung der LIMIT-Klauseln in MySQL und PostgreSQL.

die Ergebnismenge Begrenzung wird nun auch standardisiert, aber mit einer ausführlicheren Syntax:

SELECT * 
FROM T 
FETCH FIRST 10 ROWS ONLY 
+6

Um fair zu sein, "FETCH FIRST 10 ROWS ONLY" nur saugt im Vergleich zu "LIMIT 10". – doublep

+4

Standard SQL saugt. Ich denke, es ist eine Tradition. –

+1

@Mark Byers - Offensichtlich müssen die Leute, die VB gebaut haben, sich mit den ISO-Leuten auf SQL-Standards beraten, wie ausführlich das ist. – Thomas

5

Postgres die LIMIT syntax in v6.5, auf June 9th, 1999 veröffentlicht worden.

Based on the documentation, MySQL hatte LIMIT-Syntax ab v3.23 (production release Jan, 2001). Aber die Dokumente in der URL sind für 4.1, die bis 2004 nicht freigegeben wurde.

SQL Server hatte nicht TOP bis SQL Server 2000, shipping in late 2000.

Oracle hat in ROWNUM since Oracle 6, veröffentlicht hatte. Noch schlimmer ist, dass es in Fällen besser als ROW_NUMBER ist!

+1

vor 22 Jahren? Wow ... rede schnell! – CMircea

+0

LIMIT/OFFSET wurde in PostgreSQL 6.5 hinzugefügt und ist dort vollständig dokumentiert. Sie verlinken zu 6.3 Dokumentation ... (FWIW, 6.5 wurde im Juni 1999 veröffentlicht, aber das war immer noch nach MySQL hinzugefügt LIMIT) –

0

Ich weiß, dass Rdb (ursprünglich ein Dezember Corporation Produkt, jetzt von Oracle) im Jahr 1991.

teilen und genießt LIMIT TO n ROWS zurück hatte.

Verwandte Themen