SQLite-Abfrage in alphabetischer Reihenfolge ohne Berücksichtigung der Groß- und Kleinschreibung [duplicate]

Lesezeit: 1 Minute

Benutzer-Avatar
Anthony Honciano

Alles, was ich tun möchte, ist, das Zeug in alphabetischer Reihenfolge zu packen und die Großbuchstaben zu ignorieren.

db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null);

Dies ist der Code, den ich oben verwende, aber er gibt mir immer eine SQLite-Ausnahme, die besagt, dass COLLATE ein Syntaxfehler ist.

android.database.sqlite.SQLiteException: near “COLLATE”: Syntaxfehler: , beim Kompilieren: SELECT Artist FROM testTable COLLATE NOCASE ASC

Benutzer-Avatar
OMG Ponys

COLLATE steht vor der Bestellrichtung:

db.rawQuery("SELECT " + catName 
           + " FROM " +tableName 
        +" ORDER BY "+catName+" COLLATE NOCASE ASC;", null);

Aber die braucht man nicht ASC — das ist die Standardeinstellung, also könnten Sie genauso gut verwenden:

db.rawQuery("SELECT "+ catName 
            +" FROM "+ tableName 
        +" ORDER BY "+ catName +" COLLATE NOCASE;", null);

  • SOOOO SELTSAME! Ich dachte, ich hätte den letzteren Code ausprobiert und den gleichen Fehler bekommen … aber jetzt funktioniert es … ich hatte es wahrscheinlich nur falsch eingegeben (höchstwahrscheinlich … VIELEN DANK!

    – Anthony Honciano

    11. Mai 2011 um 1:13 Uhr

  • Noch eine Frage bitte … Gibt es eine Möglichkeit, Duplikate in SQLite zu ignorieren?

    – Anthony Honciano

    11. Mai 2011 um 1:14 Uhr

  • @Anthony Honciano: Stellen Sie eine neue Frage zum Ignorieren von Duplikaten – sehr wahrscheinlich ja, aber ich müsste die Details zur Duplizierung sehen.

    – OMG Ponys

    11. Mai 2011 um 1:17 Uhr

Benutzer-Avatar
minhazur

hinzufügen COLLATE NOCASE nach orderBy String.

db.query(table, columns, selection,
        selectionArgs, groupBy, having,
        orderBy + " COLLATE NOCASE ASC");

Hier hängt die Reihenfolge von ASC oder DESC von Ihrem Bedarf ab.

Das sollte auch funktionieren denke ich:

db.rawQuery("SELECT "+ catName 
        +" FROM "+ tableName 
    +" ORDER BY lower("+ catName +");", null);

1225680cookie-checkSQLite-Abfrage in alphabetischer Reihenfolge ohne Berücksichtigung der Groß- und Kleinschreibung [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy