| |||||||
Das Thema "SQLite und ROWNUM?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Junior Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 19.03.2010
Beiträge: 35
Abgegebene Danke: 5
Erhielt 0 Danke für 0 Beiträge
| Ich bin gerade an meiner ersten App am werkeln und ärgere mich ununterbrochen mit SQLite herum. Bin schon froh das ich es geschafft habe meine Tabellen zu erstellen und mit Werten zu befüllen. Was ich jetzt jedoch vermisse ist meine geliebte Oracle-Funktion rownum. Am Besten ich erkläre euch was genau ich will: Meine Tabelle: ID || wert || zahl 1 || hallo || 0 2 || wer || 1 3 || hey || 0 4 || moin || 1 Nun: SELECT * FROM Tabelle WHERE zahl = 1; ID || wert || zahl 2 || wer || 1 4 || moin || 1 Was ich nun gerne hätte wäre eine Rownum, also eine autoincrement ID des select-befehls (siehe Spalte rn) rn || ID || wert || zahl 1 || 2 || wer || 1 2 || 4 || moin || 1 Aber wie erreiche ich so etwas? Ich hab jetzt ne Stunde herumgegooglet - ohne Ergebniss. Das Problem bei ROWID ist, dass er mir dabei 1:1 meine ID nimmt -.- Hat wer eine Idee? Danke im Vorraus! |
| | |
| | #2 (permalink) |
| Junior Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 19.03.2010
Beiträge: 35
Abgegebene Danke: 5
Erhielt 0 Danke für 0 Beiträge
|
Hmm nagut keine Ideen :/ Was mir noch gekommen ist: CREATE TABLE tabelle2 AS SELECT * FROM tabelle WHERE WERT = 1; SELECT rowid, * FROM tabelle2 --> Das würde klappen ist jedoch weit ungemütlicher zu realisieren. Weiters bräuchte ich dann ein CREATE OR REPLACE TABLE... was es in SQLite ebenfalls nicht zu geben scheint. Hmpf. Eine letzte Möglichkeit wäre dann eig. nur alles in Java zu realisieren und das wäre absolut ungemütlich und auch nicht sehr effizient. |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 21.07.2011
Beiträge: 22
Abgegebene Danke: 2
Erhielt 2 Danke für 2 Beiträge
|
hilft dir vielleicht LIMIT? siehe SQLite Query Language: SELECT |
| | |
| Folgender Benutzer bedankt sich bei hannes1608 für diesen Beitrag: | MeGaBlitz (07.09.2011) |
| | #4 (permalink) |
| Erfahrener Benutzer Modell: HTC Desire S Registriert seit: 12.04.2010
Beiträge: 246
Abgegebene Danke: 9
Erhielt 15 Danke für 14 Beiträge
|
@MeGaBlitz: Kenn zwar nichts womit du dies machen willst, aber eine frage habe ich warum willst du denn noch eine Row Nummerierung? Wenn du die Daten holst hast du die doch sowieso irgend in einer List oder so.
|
| | |
| | #5 (permalink) |
| Junior Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 19.03.2010
Beiträge: 35
Abgegebene Danke: 5
Erhielt 0 Danke für 0 Beiträge
|
@hannes: Danke, könnte tatsächlich funktionieren! Werde ich gleich mal an meiner App ausprobieren ![]() @surtic: Das Problem ist: Ich will mir nur einen Wert aus der Abfrage holen. Genauer gesagt: --> Ich hol mir eine Liste bei der die zahl 1 ist --> sehe nach wieviele Werte ich bekomme (ANZ) --> Per Zufall wird einer dieser Werte ausgelesen. (BSP: Ich bekomme 15 Werte --> random ergibt 12 --> Lies den zwölften Wert aus) Das scheint bei Limit zu funktionieren da Limit tatsächlich auf die Row Nummerierung zugreift. Zumindest an meiner Testdatenbank funktioniert das tadellos |
| | |
| | #6 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Sensation Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
|
hmm, so richtig hab ich es zwar noch nicht kapiert, aber wenn du zufalls-zeilen aus der DB willst geht das einfach so: SELECT * FROM table ORDER BY RANDOM() LIMIT 1; willst du mehrere zufalls-zeilen einfach Limit erhöhen. in postgres funktioniert glaub ich sogar die gleiche syntax, in mysql heißt es glaub rand() |
| | |
| Folgender Benutzer bedankt sich bei Tom299 für diesen Beitrag: | MeGaBlitz (08.09.2011) |
| | #7 (permalink) |
| Erfahrener Benutzer Modell: HTC Desire S Registriert seit: 12.04.2010
Beiträge: 246
Abgegebene Danke: 9
Erhielt 15 Danke für 14 Beiträge
|
@MeGaBlitz: Ah so aber auch dann brauchst du doch gar nicht zu wissen welche Zeilen Nummer es ist. Für etwas hat man einen Count und kann es mit dem Index holen.Und die Lösung von Tom ist sicher Top vor allem wird es gleich von SQL gelöst und du musst nichts in Java machen.
|
| | |
| | #8 (permalink) | |
| Junior Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 19.03.2010
Beiträge: 35
Abgegebene Danke: 5
Erhielt 0 Danke für 0 Beiträge
| Zitat:
Danke.Meine App funktioniert auch schon... Also, zumindest am Emulator ^^ Danke euch Allen für die schnelle Hilfe! | |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| SQLite Datenbank und Server Updates? | shinjo | Android App Entwicklung | 2 | 01.09.2011 12:29 |
| SQLite-Datenbank in Emulator kopieren und Verbindung herstellen | marcel_at_work | Android App Entwicklung | 6 | 25.07.2011 23:30 |
| SQLite Android 2.2 | MBPower | Android App Entwicklung | 2 | 15.09.2010 23:40 |
| SQLite und Curso Frage | lord_fritte | Android App Entwicklung | 5 | 14.06.2010 15:09 |
| Lesen und schreiben in eine SQLite-Datenbank | ensacom | Android App Entwicklung | 2 | 18.05.2009 14:23 |