AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Select in mySQL

Ein Thema von hsbc · begonnen am 9. Apr 2005 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#1

Select in mySQL

  Alt 9. Apr 2005, 10:46
Datenbank: mySQL • Version: 4.1 • Zugriff über: Delphi 7 Professional über API-Interface
Hallo

Ich habe eine Tabelle mit Artikeln, mit einem Primärindex und einem Sekundärindex. Wenn ich irgendeinen Artikel mit SELECT anwähle, wird dieser ordnungsgemäß angezeigt.

Wie kann ich jetzt die "vorherigen 20 Artikel" mit SELECT ansprechen? Geht das irgendwie mit

SELECT * FROM Artikel WHERE artnr BEFORE 12345 ???

Wie realisiert man so etwas am Besten?

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Select in mySQL

  Alt 9. Apr 2005, 10:49
Also, wenn ich dich richtig verstanden habe dann willst du zuerst einen Artikel auswaehlen, also nehmen wir an mit der ID 12345. Nun willst du die 20 Artikel vor diesem anzeigen? In dem Fall mach das hier:
SELECT * Artikel WHERE artnr<12345 ORDER BY artnr DESC LIMIT 20 Die Reihenfolge ist zwar dann absteigend, evtl. musst du das bei der Anzeige dann wieder umdrehen. Auf die Schnelle faellt mir aber kein anderer Weg ein.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#3

Re: Select in mySQL

  Alt 9. Apr 2005, 11:57
Hallo alcaeus,

danke vorerst mal für den Tipp, werde das gleich mal ausprobieren.

Diese SELECT-Syntax ist halt sehr umfangreich. Gibt es eigentlich eine detaillierte Beschreibung, ev. mit Beispielen für alle möglichen Situationen dafür? Momentan quäle ich mich halt mit der Online-Referenz von mysql.com ab.

Vielleicht hat noch jemand Ideen, wie man das noch machen könnte ...

mfg
Herbert
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#4

Re: Select in mySQL

  Alt 9. Apr 2005, 15:31
Hallo alcaeus,

ich habe deinen Vorschlag nun probiert, musste aber feststellen, dass es leider nicht so funktioniert. Man kann zwar zurückblättern, so wie es gewünscht ist, jedoch beginnt dies nicht bei der übergebenden Artikelnummer, sondern bei der grössten.

Vielleicht kann sich dies doch noch ein Spezialist ansehen, ich komme hier einfach nicht weiter.

Ich möchte nichts anderes, als ab einer bestimmten Artikelnummer beginnend, die vorherigen 20 selektieren.

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Select in mySQL

  Alt 9. Apr 2005, 15:34

Mein query sollte eigentlich genau das machen. Ich waehle alle aus, deren Artikelnummer kleiner als die vorherige ist. Anschliessend beschraenke ich das Ergebnis auf die 20 mit der groessten Artikelnummer, allerdings sind die immer noch kleiner als 12345.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Select in mySQL

  Alt 9. Apr 2005, 15:51
Hai alcaeus,

ich hätte das gleiche Vorgeschlagen wie Du
Kann es an der "Optimierung" von mySQL liegen:
Mein mySQL-Handbuch sagt

Wenn Sie LIMIT # mit ORDER BY benutzen, beendet MySQL das Sortieren, sobald er
die ersten # Zeilen gefunden hat, anstatt die gesamte Tabelle zu sortieren.

Wobei das ein schöner Bug wäre.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#7

Re: Select in mySQL

  Alt 9. Apr 2005, 16:09
Hallo nochmals allerseits,

bin auf den Fehler schon dahintergekommen. Hatte die Abfrage mit Variablen gestaltet und "<" mit ">" bei einer Selektion verwechselt gehabt. Funktioniert jetzt einfwandfrei. Schön wäre halt, wenn man beim Zurückblättern trotzdem die Sortierreihenfolge ansteigend haben könnte, aber dies ist nur ein kleiner Schönheitsfehler. Wichtig ist, dass es vom Prinzip her mal funktioniert.

Besten Dank nochmals an alle Beteiligten für Eure Mühe.

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Select in mySQL

  Alt 9. Apr 2005, 16:17
Zitat von hsbc:
Schön wäre halt, wenn man beim Zurückblättern trotzdem die Sortierreihenfolge ansteigend haben könnte, aber dies ist nur ein kleiner Schönheitsfehler.
Wie gesagt, dreh die Reihenfolge vor dem Anzeigen wieder um.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz