Seite 1 von 2
In SQLite suchen
Verfasst: 01.03.2011 16:00
von Velindos
Hallo,
in meiner Anwendung durchsuche ich eine Spalte in SQLite nach dem Stichwort.
Code: Alles auswählen
If DatabaseQuery(DB, "SELECT * FROM Release WHERE VERSION = 'MINI'")
Möchte nun wenn in einer Zeile Mini vorkommt das die Abfrage ein Ergebnis bringt, das macht Sie jedoch nicht!
Wenn ich nun "Mini" oder "M" schreibe bringt mir die Abfrage kein Ergebnis! Kann mir jemand sagen warum?
Gruss ... Velindos
Re: In SQLite suchen
Verfasst: 01.03.2011 16:25
von SebastianJu2
Die Query sieht für mich korrekt aus unter der Voraussetzung dass du in der Datenbank eine Tabelle Release hast und in der Spalte VERSION einen Eintrag MINI der auch alles groß geschrieben ist.
Mach einfach mal ein Select ohne Whereklausel. Schau nach ob das DB-Handle korrekt ist usw.
Re: In SQLite suchen
Verfasst: 01.03.2011 16:31
von Velindos
Hallo,
deinen Rat befolgt, er liest Daten. Habe es wie folgt probiert
Code: Alles auswählen
DatabaseQuery(DB, "SELECT * FROM Release WHERE VERSION >= '" +Kategory$+ "'"
Hier kommen Daten aber die Abfrage berücksichtigt noch immer Gross/Kleinschreibung und es geht immer von der ersten Stelle weg.
Gruss ... Velindos
Re: In SQLite suchen
Verfasst: 01.03.2011 16:57
von bobobo
versuch mal so
Code: Alles auswählen
..
..
query$="select * from tabelle where spalte like '%"+Kategorie$+"%'"
Databasequery(#DB,query)
..
..
die % sind das was Du sonst unter * kennst
Ergebnis zeigt alle Sätze an in denen in Spalte spalte Kategorie$ enthalten ist.
Grosskleinschreibung sollte dabei Wurst sein.
Re: In SQLite suchen
Verfasst: 01.03.2011 17:13
von SebastianJu2
Ich glaube nicht dass die Groß- Kleinschreibung da egal ist. Da muss es eine Funktion geben mit der du alle buchstaben verkleinern oder vergrößern kannst in der Where-klausel. Ich kenn die Funktion in sqlite nicht aber so etwa müsste es aussehen:
Code: Alles auswählen
DatabaseQuery(DB, "SELECT * FROM Release WHERE ucase(VERSION) >= ucase('" +Kategory$+ "')"
Re: In SQLite suchen
Verfasst: 01.03.2011 17:15
von Kiffi
SebastianJu2 hat geschrieben:Ich glaube nicht dass die Groß- Kleinschreibung da egal ist.
Glaub es ruhig.
Grüße ... Kiffi
Re: In SQLite suchen
Verfasst: 01.03.2011 17:18
von SebastianJu2
Meinte er vielleicht alles was von den % abgefangen wird? Dann ja. Ich habs so verstanden wie wenn es um das ganze Wort geht auch das zwischen den %. Wenn das Wort auch egal wäre in Bezug auf Groß/Klein dann wäre das ungewöhnlich.
Vermutlich nur falsch verstanden...

Re: In SQLite suchen
Verfasst: 01.03.2011 17:24
von Bisonte
Es ist egal ob du %walter% oder %WaLteR% schreibst... es wird auch Waltershof und Oberwalter gefunden...
Zumindest bei MySQL und SQLite ist da sehr wahrscheinlich nicht anders.
Re: In SQLite suchen
Verfasst: 01.03.2011 17:24
von Kiffi
SebastianJu2 hat geschrieben:Meinte er vielleicht alles was von den % abgefangen wird?
Like ist hier case insensitive:
Code: Alles auswählen
UseSQLiteDatabase()
DB = OpenDatabase(#PB_Any, ":memory:", "", "", #PB_Database_SQLite)
DatabaseUpdate(DB, "Create Table myTable (myField)")
DatabaseUpdate(DB, "Insert Into myTable (myField) Values ('mimi')")
DatabaseUpdate(DB, "Insert Into myTable (myField) Values ('Mimi')")
DatabaseUpdate(DB, "Insert Into myTable (myField) Values ('MIMI')")
DatabaseQuery(DB, "Select * From myTable Where myField Like 'mimi'")
While NextDatabaseRow(DB)
Debug GetDatabaseString(DB, 0)
Wend
Das hat nix mit dem Wildcard zu tun.
Grüße ... Kiffi
Re: In SQLite suchen
Verfasst: 01.03.2011 17:30
von SebastianJu2
Ähm... ja... mein Fehler... ihr habt natürlich Recht...