it-swarm.com.de

Wie kann ich Zeilen nach Bereich auswählen?

Mögliches Duplizieren:
Wähle eine Anweisung in SQLite aus, um die Zeilennummer zu erkennen

Zum Beispiel SELECT * FROM table WHERE [row] BETWEEN x AND y

Wie kann das gemacht werden? Ich habe etwas gelesen, aber nichts spezielles gefunden.

Stellen Sie sich eine Liste vor, in der Sie die Ergebnisse mit einer X-Anzahl von Ergebnissen anzeigen lassen möchten. Für Seite 10 benötigen Sie also Ergebnisse aus den Zeilen 10 * X bis 10 * X + X. Statt alle Ergebnisse auf einmal anzuzeigen

20
rtheunissen

Für MySQL haben Sie ein Limit, Sie können Query folgendermaßen auslösen:

SELECT * FROM table limit 100` -- get 1st 100 records
SELECT * FROM table limit 100, 200` -- get 200 records beginning with row 101

Für Oracle können Sie rownum verwenden.

Siehe mysql select Syntax und Verwendung für limithier .

Für SQLite haben Sie limit, offset. Ich habe SQLite nicht verwendet, aber ich habe es in der SQLite-Dokumentation überprüft. Überprüfen Sie das Beispiel für SQLite hier .

46

Sie können rownum verwenden:

SELECT * FROM table WHERE rownum > 10 and rownum <= 20
9
Majid Laissi

Nach Ihrer Klarstellung suchen Sie nach Limit:

SELECT * FROM `table` LIMIT 0, 10 

Dadurch werden die ersten 10 Ergebnisse aus der Datenbank angezeigt.

SELECT * FROM `table` LIMIT 5, 5 .

Wird 5-9 anzeigen (5,6,7,8,9)

Die Syntax folgt dem Muster:

SELECT * FROM `table` LIMIT [row to start at], [how many to include] .

Die SQL zum Auswählen von Zeilen, in denen sich eine column zwischen zwei Werten befindet, lautet:

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

Siehe: http://www.w3schools.com/sql/sql_between.asp

Wenn Sie auf die Zeilennummer gehen möchten, können Sie Rownum verwenden:

SELECT column_name(s)
FROM table_name
WHERE rownum 
BETWEEN x AND y

Wir müssen jedoch wissen, welche Datenbank-Engine Sie verwenden, da sich das Rownum für die meisten unterscheidet.

5
Pez Cuckow

Zwischenbedingung verwenden

SELECT *
FROM TEST
WHERE COLUMN_NAME BETWEEN x AND y ;

Oder mit nur Operatoren,

SELECT *
FROM TEST
WHERE COLUMN_NAME >= x AND COLUMN_NAME   <= y;
2
Jayamohan

Haben Sie Ihren eigenen Code ausprobiert?
Das sollte funktionieren:

SELECT * FROM people WHERE age BETWEEN x AND y
1
Pharaoh

Verwenden Sie die Klausel LIMIT:

/* rows x- y numbers */
SELECT * FROM tbl LIMIT x,y;

siehe: http://dev.mysql.com/doc/refman/5.0/de/select.html

1
Rajshri

Angenommen, id ist der Primärschlüssel der Tabelle:

SELECT * FROM table WHERE id BETWEEN 10 AND 50

Für die ersten 20 Ergebnisse 

SELECT * FROM table order by id limit 20;
0