Seite 1 von 1
Suchsyntax für Textfelder (Schlagworte, Zeichenabschnitte) ?
Verfasst: So, 25.05.2008 13:22
von Michael1
Hallo,
wegen Linuxumstieg suche ich eine Alternative zu Filemaker Version 5.0, Base 2.1 schien mir dafür tauglich zu sein.
An meiner "Tauglichkeit" für diese Datenbank scheine ich langsam (zu Ver-) Zweifel (n) zu bekommen. Ich verfüge über kein EDV-Studium und habe keine Programmier- oder SQL-Kenntnisse, nur die neue Datenbank und ein Buch von Michael Mahrt.
Nun zu meinem Problem:
Ich habe zum Testen eine Filemaker-Feld (Stichwortsammlung) in OpenOffice-Calc als dbf-Datei abgespeichert und mit Base auf diese Datenbank
zugegriffen. Diese Stichwortsammlung ist in FileMaker ähnlich der Funktion CONCAT von Base erstellt worden (siehe Beispiel)
Beispiel:
Stichwortsammlung (Feldbezeichnung)
Winword 6.0Makrosduplizieren
Winword 6.0Hotkeys
Winword 6.0MakrosTips
Winword 6.0Dokumentenvorlagen
Winword 6.0Logoauf Briefpapier
Winword 6.0Wasserzeichen auf jeder Seite
Winword 6.0Suchen/ ErsetzenFormatierung
Nun möchte ich alle Datensätze, welche "Winword" enthalten anzeigen lassen (mittels Abfrage in der Entwurfansicht).
Feld: Tabelle1
Alias: Test
Sortierung: nein
Sichtar: ja
Funktion: nein
Kriterium: 'winword'
Kriterium: %winword% (zweiter Versuch)
nichts passiert, nur eine Ergebnis ohne Datensätze!? Was mache ich falsch?
Gruß Michael
Re: Suchsyntax für Textfelder (Schlagworte, Zeichenabschnitte) ?
Verfasst: Mo, 26.05.2008 08:02
von pmoegenb
Folgende SQL-Syntax könnte Dir von Nutzen sein (Beispiel):
Code: Alles auswählen
SELECT * FROM "Tabelle1" WHERE LIKE "Stichwortsammlung" = :Stichwort
ORDER BY "Stichwortsammlung" ASC
Die Abfrage öffnet beim Start ein Fenster in das Du das Stichwort als Suchbegriff eingeben kannst. Der Platzhalter % ist im vorliegen Fall nur am Ende des Suchbegriffs erforderlich.
Re: Suchsyntax für Textfelder (Schlagworte, Zeichenabschnitte) ?
Verfasst: Mo, 26.05.2008 21:59
von Michael1
Hallo Peter,
vielen Dank für Deine Hilfe. Ich befürchtete schon, daß niemand antworten würde - also vielen Dank.
Ich habe im Fenster: Abfrage in SQL-Ansicht erstellen... Deine Vorgaben reingeschrieben:
SELECT * FROM "Tabelle1" WHERE LIKE "Stichwortsammlung" = :Stichwort
ORDER BY "Stichwortsammlung" ASC
dann SQL ausgeführt
und erhielt leider immer folgende Fehlermeldung:
Syntax error SQL-expression
SQL-Status: HY000
Fehler-Code: 1000
syntax error, unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE
Meine Überprüfung ergab: Tabellenbezeichnung und Feldbezeichnung (Sichwortsammlung) sind korrekt. Wie nun weiter?
Gruß Michael
Re: Suchsyntax für Textfelder (Schlagworte, Zeichenabschnitte) ?
Verfasst: Di, 27.05.2008 08:12
von hema
Hallo Michael,
Du hast folgenden Code genommen
Code: Alles auswählen
SELECT * FROM "Tabelle1" WHERE LIKE "Stichwortsammlung" = :Stichwort
ORDER BY "Stichwortsammlung" ASC
Versuch mal anstelle des * die Feldbezeichnung Stichwortsammlung:
Code: Alles auswählen
SELECT "Stichwortsammlung" FROM "Tabelle1" WHERE LIKE "Stichwortsammlung" = :Stichwort
ORDER BY "Stichwortsammlung" ASC
Bei mir funktioniert es so.
Gruss Markus
Re: Suchsyntax für Textfelder (Schlagworte, Zeichenabschnitte) ?
Verfasst: Di, 27.05.2008 08:13
von pmoegenb
Hallo Michael,
versuchs mal so:
Code: Alles auswählen
SELECT * FROM "Tabelle1" WHERE ("Stichwortsammlung" LIKE :Stichwort)
ORDER BY "Stichwortsammlung" ASC
Die Syntax war falsch.
Re: Suchsyntax für Textfelder (Schlagworte, Zeichenabschnitte) ?
Verfasst: Di, 27.05.2008 22:36
von Michael1
Hallo Peter,
vielen Dank es hat funktioniert. Vieles ist mir noch nicht verständlich, da ich in SQL völlig unerfahren bin.
Warum sucht er nicht gleich das eingetragen Stichwort hinter Like und was ist ein Paremter und eine nachfolgende Wert-Eingabe?
Welche Literatur für SQL-Anfänger empfiehlst Du?
Gruß Michael
Re: Suchsyntax für Textfelder (Schlagworte, Zeichenabschnitte) ?
Verfasst: Mi, 28.05.2008 07:50
von pmoegenb
Hallo Michael,
allgemeine Informationen findest Du z. B. unter
http://de.wikipedia.org/wiki/SQL.
Warum sucht er nicht gleich das eingetragen Stichwort hinter Like
Du kannst natürlich den Suchbegriff auch direkt eingeben, dann würde das z. B. so aussehen:
Code: Alles auswählen
SELECT * FROM "Tabelle1" WHERE ("Stichwortsammlung" LIKE 'Winword%')
ORDER BY "Stichwortsammlung" ASC
Nur, musst Du dann jedesmal die Syntax ändern, wenn sich der Suchbegriff ändert. Die Hostvariable
:Stichwort (Parameter) bewirkt, dass Du ein Abfragefenster erhältst, in das Du den
Wert eingeben kannst. D. h., Du musst die SQL-Abfage nicht ändern. Aus der Hostvariablen
:Stichwort wird der Inhalt gelesen, den Du in das Abfragefenster eingibst.
Der Ausdruck
LIKE steht für ähnlich und das Zeichen
% (Joker) bewirkt dass was nach der Zeichenfolge Winword kommt beleibig sein kann.
%Winword% bewirkt, dass Winword irgendwo in Stichwortsammlung gesucht wird.
Re: Suchsyntax für Textfelder (Schlagworte, Zeichenabschnitte) ?
Verfasst: Do, 29.05.2008 07:54
von Michael1
Hallo Peter,
vielen Dank für Deine geduldige und ausführliche Hilfe. Als langjährige FileMaker-Nutzer ist man natürlich verwöhnt auch ohne SQL-Kenntnisse eine Datenbank nutzen zu können, aber auf Linux läuft nun mal FileMaker nicht.
Aber Dank Deiner und Markus Hilfe ist es mir innerhalb von 10 Tagen gelungen eine einfache Suchabfrage zu stellen und das läßt hoffen

.
Gruß Michael