2016-12-28 2 views
-2

Also dieser Wert auf meine Datenbank „COLUMN_days“ ist der Spaltenname ..Android - SQLite-Lesewert in der Tabelle mit Komma, WHERE-Klausel

 days 
==> Mon 
==> Mon,Tue,Wed 
==> Mon,Fri 

So, hier ist mein Code, um einen Wert für die Auswahl.

getDatabase().rawQuery("SELECT * FROM " 
     + ALARM_TABLE + " WHERE " + COLUMN_days + " = " + "'Tue'", null); 

Aber es hat nicht den Wert in der Datenbank angezeigt werden, die eine Di, weil ich die Datenbank alle das Wort „Di“ lesen möchten, die in der Datenbank haben. Zum Beispiel möchte ich alle "Di" in der Datenbank anzeigen. Es wird "Mon, Di, Mi" angezeigt oder ich möchte alle "Mon" anzeigen. Dann werden die drei "Mon" angezeigt, die ich in der Datenbank habe.

Ich hoffe, Sie verstehen, was ich wissen will. Danke im Voraus.

+0

ist besser, ** ** normalisieren Ihre Datenbank. Jede Spalte sollte einen ** einzigen ** Wert enthalten und Daten sollten nicht ** redundant ** sein. Sie können Spalten aus mehreren Tabellen beziehen. –

+1

Normalisieren Sie zuerst Ihre Datenstruktur und lassen Sie nicht mehrere Werte in einem einzelnen Textwert gespeichert. – Shadow

Antwort

1

Verwenden like Operator mit % stattdessen als '=' operator in

getDatabase().rawQuery("SELECT * FROM " 
     + ALARM_TABLE + " WHERE " + COLUMN_days + " like " + "'%Tue%'", null); 
+0

Es funktioniert! Ich danke dir sehr! –

+0

Es funktioniert, OK. Aber das ist wirklich nur ein Workaround, um eine ** schrecklich gestaltete ** Datenbank zu verwalten. –

Verwandte Themen