2016-07-01 11 views
1

Ich verwende derzeit SQLLite, um mit meinen Daten umzugehen. Ich habe die Spalte NAME und möchte Namen, die gleich sind, f.E. Ich kann den Namen Boris hinzufügen, aber wenn ich das zweite Mal Boris hinzufüge, wird der erste Eintrag auf Boris 1 aktualisiert, während der zweite die Nummer Boris 2 erhält.Android SQLite - So beschriften Sie Namen

Meine Frage ist, wie kann ich die SQL-Abfrage, so dass es jeden Eintrag Boris wählt, auch wenn es nummeriert ist.

Mein aktueller Ansatz ist:

db.rawQuery("SELECT " + DealContract.PurchaseTable.COLUMN_NAME + " FROM " + DealContract.PurchaseTable.TABLE_NAME + " WHERE " + DealContract.PurchaseTable.COLUMN_NAME + " LIKE '" + name + "%'", null); 

Simplfied:

SELECT NAME FROM PURCHASES WHERE NAME LIKE 'name%' 

Dies funktioniert, aber:

  • keine Namen schließt Sachen mit, nachdem er hinzugefügt wie Boris Johnson

  • schließt mit Sachen Namen wie Bori

EDIT fehlt: Sollte sein: "Wie Namen zur Nummer"

+0

Vielleicht "%" durch "[1-9]" ersetzen? –

+0

@ AleksandarStefanović ist das nur für eine Nummer? Wenn ja, wie würde es mit mehreren Zahlen aussehen? Und es muss auch den Namen wählen, der nicht nummeriert ist – zebleckDAMM

+0

Ich bin mir nicht sicher. Vielleicht können Sie Ergebnisse in Java extrahieren und dann von dort aus arbeiten? Wie eine Art von Zyklus, der den Namen etc. bestimmen würde. –

Antwort

0

Ich schlage vor, Sie % Wildcard entfernen. Ändern Sie SELECT NAME FROM PURCHASES WHERE NAME LIKE 'name%' zu SELECT NAME FROM PURCHASES WHERE NAME LIKE 'name [0-9]' OR NAME LIKE 'name'. Wenn Ihre Abfrage beispielsweise 1 Ergebnis zurückgibt, wissen Sie, dass nur 1 boris in der Datenbank vorhanden ist. Also einfach die Anzahl der zurückgegebenen Zeilen, wenn es nicht Null ist, diese Nummer an boris anhängen und speichern.

Verwandte Themen