[gelöst]Suche mit schreibfehlern

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst]Suche mit schreibfehlern

Re: Suche mit schreibfehlern

von juetho » Di, 16.10.2012 10:45

tim9394 hat geschrieben:Ich denke damit kann das Thema geschlossen werden...
Das hast du selbst in der Hand. Üblich ist, dass du den ersten Beitrag zum Ändern öffnest und an den Anfang der Titelzeile (Betreff) etwas wie "[gelöst]" oder "[erledigt]" einfügst. Jürgen

Re: Suche mit schreibfehlern

von tim9394 » Di, 16.10.2012 10:17

Hallo Robert,

sry dass ich mich erst jetzt melde. Hatte lange frei...

Hat wunderbar funktioniert!!! Vielen Dank!!! Ich denke damit kann das Thema geschlossen werden... Falls noch was is hab ich ja mit euch Profis an der hand ;)

Danke nochmal!

Gruß
Tim

Re: Suche mit schreibfehlern

von RobertG » Fr, 12.10.2012 09:49

Hallo Tim,

vielleicht hilft Dir der folgende Code etwas aus der Patsche:

Code: Alles auswählen

SELECT "Name" FROM "Tabelle1" 
WHERE LOWER ( "Name" ) LIKE ( '%' || IFNULL ( NULLIF ( LOWER ( :Name ), '' ) ,'§§') || '%' )
Mit "LIKE" waren wir ja schon im Klaren. Jetzt muss der Abfrage nur ein Ausdruck untergeschoben werden, der auf gar keinen Fall vorkommt. Dies sollen die beiden Paragraphen sein ('§§'). Zuerst habe ich ausprobiert, ob direkt auf den Parameter mit der Funktion IFNULL zugegriffen werden kann. Der Parameter gibt aber nicht NULL, sondern ein leeres Feld wieder (''). Das leere Feld wird durch 2 direkt nacheinander gesetzte Hochkommata (über dem # auf der Tastatur) angesprochen. Jetzt habe ich einem eventuelle leeren Feld durch die Funktion NULLIF den Wert NULL zugewiesen. Das Ergebnis: Gebe ich bei dem Parameter nichts ein, so wird auch nichts in der Abfrage angezeigt.

Gruß

Robert

Re: Suche mit schreibfehlern

von tim9394 » Do, 11.10.2012 11:56

Ok verstehe, mein Plan ist jetzt ein Formular zu entwerfen welches für jede Kategorie eine Schaltfläche aufweist. Diese Schaltfläche soll dann nur noch eine SQL Abfrage durch führen. Dazu schreib ich pro Kategorie eine Abfrage und weise jede Schaltfläche dann einer zu. ist das so möglich um meine Such im Formular zu gestalten?

Gruß
Tim

Re: Suche mit schreibfehlern

von RobertG » Mi, 10.10.2012 21:12

Dass Du wirklich alles findest liegt in der Natur der Abfrage von mehreren Feldern.
Die Abfrage sucht ja alles, was passend zu der Eingabe ist. Angenommen, Du lässt eingaben leer, so erzeugt ( '%' || LOWER ( :Name ) || '%' ) daraus eine Abfrage nach allen Namen. '%' steht für beliebig viele Zeichen. Und ("Name") LIKE (alle möglichen Zeichen) ergibt nun einmal alle Datensätze. Ob da nun etwas steht oder nicht.
Jetzt hast Du Deine Ursprungsabfrage auch noch so aufgebaut, dass Du die Bedingungen mit "OR" verknüpfst. Das heißt, dass nur eine leere Parametereingabe dazu führt, dass alle Datensätze angegeben werden.

Gruß

Robert

Re: Suche mit schreibfehlern

von tim9394 » Mi, 10.10.2012 16:32

Hey,

das mit dem farblichen markieren wäre ja mal klasse... aber leider noch ein Traum...

Hab deinen Befehl mal auf meine Suche angewendet und ich finde egal was ich eingebe (sprich ob genau den Titel/oder auch sowas wie "posamcnvoe0q3") immer alle Datenätze.

Was soll ich tun?

Re: Suche mit schreibfehlern

von RobertG » Di, 09.10.2012 15:39

Um das eben kurz in die entsprechende Form zu bringen:

Code: Alles auswählen

SELECT "Name" FROM "Tabelle1" WHERE LOWER ( "Name" ) LIKE ( '%' || LOWER ( :Name ) || '%' )
Du sogst damit dafür, dass sowohl der Inhalt des Feldes als auch Deiner Eingabe klein geschrieben wird. Außerdem kann der Inhalt irgendwo im Bereich des Feldes "Name" auftauchen. Wenn Du allerdings zu viele Felder und zu kurze Eingaben wählst, dann kann das zu einer ganzen Reihe Datensätze führen, die Du gar nicht haben willst.
Was leider noch kein Feature ist: Die entsprechenden Suchbegriffe werden im Ergebnis nicht (z.B. farblich) markiert. Aber wenn irgendwann einmal wieder Entwickler Base vorantreiben kann das ja noch werden.

Gruß

Robert

Re: Suche mit schreibfehlern

von juetho » Di, 09.10.2012 14:20

tim9394 hat geschrieben:Ich hoffe ihr versteht das so ungefähr...
Es geht so grade noch. Es gibt mehrere Möglichkeiten der Suche nach Ähnlichkeit. Für Groß-/Kleinschreibung bietet es sich an, alle Vergleichswerte mit der Funktion LOWER() in Kleinbuchstaben zu setzen. Die WHERE-Klausel kennt die LIKE-Bedingung mit Platzhaltern. Außerdem sind unter Umständen reguläre Ausdrücke möglich (theoretisch auch bei HSQLDB und Base, aber die Hilfe schweigt sich, wie RobertG im Handbuch schreibt, dazu weitgehend aus).

Die genaue Schreibweise und das, was zur Verfügung steht, hängt vom verwendeten Datenbanksystem ab. Du benutzt offensichtlich das BASE-eigene HSQL, also solltest du alle Einzelheiten im Base-Handbuch finden.

Nebenbei:
Ich such in per Formular, dass auf den SQL Befehl ... folgt.
Etwas mehr sprachliche Sorgfalt wäre nicht schlecht; man kann einen Beitrag auch mit der Vorschau kontrollieren, ob andere ihn so verstehen wie er gemeint ist. Hier ging es noch, weil der restliche Text genau genug war. Aber du solltest auch an die Leser denken; die sollen dir schließlich helfen. Danke! Jürgen

[gelöst]Suche mit schreibfehlern

von tim9394 » Di, 09.10.2012 13:43

Hallo zusammen,

meine Frage: Ich such in per Formular, dass auf den SQL Befehl

SELECT * FROM "Archiv" WHERE "Autor" = :Autor OR "Nummer" = :Nummer OR "Stückname" = :Stückname OR "Regie" = :Regie OR "Bühnenbild" = :Bühnenbild OR "Medium" = :Medium OR "Bühne" = :Bühne OR "Intendanz" = :Intendanz

folgt. Nun möchte ih z.b. auch mit klein/Großschreibung suchen. sprich ich will nicht alles genau so eingeben müssen wie es in der Tabelle steht. Ich hoffe ihr versteht das so ungefähr...

Danke
Tim

Nach oben