In SQLite suchen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

In SQLite suchen

Beitrag 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
Zuletzt geändert von Velindos am 02.03.2011 08:52, insgesamt 2-mal geändert.
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: In SQLite suchen

Beitrag 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.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: In SQLite suchen

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: In SQLite suchen

Beitrag 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.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: In SQLite suchen

Beitrag 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$+ "')"
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: In SQLite suchen

Beitrag von Kiffi »

SebastianJu2 hat geschrieben:Ich glaube nicht dass die Groß- Kleinschreibung da egal ist.
Glaub es ruhig. :wink:

Grüße ... Kiffi
a²+b²=mc²
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: In SQLite suchen

Beitrag 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... :)
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: In SQLite suchen

Beitrag 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.
Zuletzt geändert von Bisonte am 01.03.2011 17:25, insgesamt 1-mal geändert.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: In SQLite suchen

Beitrag 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
a²+b²=mc²
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: In SQLite suchen

Beitrag von SebastianJu2 »

Ähm... ja... mein Fehler... ihr habt natürlich Recht...
Antworten