Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi,

ich kenne mich mit SQL nur sehr bedingt aus. Jedenfalls muss ich nun eine Abfrage formulieren, welche mir einen bestimmten Datensatz ausgibt.

Ich habe meine Tabelle bei der die Spalte MsgID den Primärschlüssel (int) darstellt.

MsgIDs treten immer nur einmal auf, können jedoch lückenhaft sein

(z.B. 2,6,7,8,15,17,19...).

Jetzt kann es sein, dass ich die Letzte Message vor Message Nr. 15 brauche (in dem Fall wäre das die Nr. 8), das Frage ich mit

"SELECT * FROM messages10103 where MsgId < 15 order by MsgID DESC LIMIT 1"

ab.

Wie müsste ich aber nun die Abfrage formulieren, damit ich das x. kleinere von 15 bekommen (z.B. x wäre 3, dann würde ich gern die MsgID 6 abragen).

Moin,

Wie müsste ich aber nun die Abfrage formulieren, damit ich das x. kleinere von 15 bekommen.

nur mal so interessehalber: wozu soll das denn jemals gut sein? Gibt es da eine konkrete Problemstellung? Und wenn ja, kannst du die hier dann angeben? :confused::confused::confused:

Reinhold

das habe ich mich auch gefragt als ich versuchte die logik zu verstehen :rolleyes:

ist mit sicherheit irgend so ein workaround, weil andere umsetzungstechniken nicht bekannt sind.

  • Autor

In der Datenbank werden in regelmäßigen Abständen Statusinformationen eines bestimmten Objekts mit fortlaufenden MessageIDs (die ID kann sozusagen fast als eine Art Tmestamp angesehen werden; nur dass sie keine direkte Uhrzeit darstellt) gespeichert. Es kann vorkommen, dass Messages aus der Datenbank gelöscht werden (deshalb kann ich nicht davon ausgehen, dass nach MsgID 8 auch wirklich MsgID 9 kommt.

Das X. kleinere Element von Y. muss ich abfragen, um die Daten mit einem bestimmten Zeitraster in einem Programm anzeigen zu können.

Mein Programm zeigt immer 7 Datensätze parallel in einer Art Tabelle an, wenn man einen Datensatz mit kleinerer oder größerer MsgID sehen will scrollt man im Programm nach oben oder unten und das Programm lädt die entsprechenden Informationen aus der Datenbank.

Wenn jetzt allerdings mehrere 1000 einträge in der Datenbank sind kann das mit dem scrollen, so eine Sache werden, wenn man immer in einzelschritten scrollt. Deshalb möchte ich dann nur noch jeden 10. Datensatz (oder so...) anzeigen. Die genaue Zahl stellt der User über einen Regler ein.

Natürlich könnte ich das Problem auch programmseitig lösen, indem ich einfach die 10 nächsten Datensätze ausgebe bei denen die MsgID kleiner ist und dann im Programm durchgehen bis zum letzten, aber da die Datensätze mitunter sehr viele Informationen Enthalten und schonmal 1 MB groß sein können, würde ich mit so einer Lösung unnütz Netzlast schaffen, die Datenbank stressen, mein Programm stressen und ehe ich mich versehen brauch ich HighEndHardware.

ist mit sicherheit irgend so ein workaround, weil andere umsetzungstechniken nicht bekannt sind.

In meinen Augen ist es die sauberste Lösung die Datenbank gleich genau das zu fragen, was ich wissen will, anstelle das zu fragen, was ich fragen kann um mir dann die entsprechende Antwort auzusortieren.

Oder würde hier irgendwer versuchen für eine Autofahrt von München nach Frankfurt sich alle Routen von München nach Hessen ausgeben zu lassen um sich dann aus denen die Route nach Frankfurt rauszusuchen?!

Bearbeitet von speedi

  • Autor

Ich verwende MySQL.

Ich denke nicht das man das was ich machen will als Blättern bezeichnet. Wie gesagt ich will nur das die Datenbank zu einem bestimmten Datensatz (Nr. (int) X springt) und von da eine Anzahl ((int)Y) Datensätze nach oben geht.

Aber ich werd mal in google suchen (hab ich zwar schon, aber ok, vielleicht bringt das neue Stichwort ja was.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.