Hi,
Nach wiederholter Suche habe ich CONCAT() gefunden. Ich muß meine Vorstellung von dem was mysql kann/ermöglicht revidieren.
dies sehe ich als Erfolg an.
Ich hätte aber auch gedacht, daß CONCAT( eingabe
, '%' ) das "%" an den Spaltennamen anhängt. Bisher habe ich Anführungszeichen um Spaltennamen immer weggelassen und wenn, dann hätte ich sicher die falschen genommen.
Die, die Du hier nimmst, sind ebenfalls falsch - in dem Sinne, dass sie absolut überflüssig sind. Durch die Backticks kannst Du MySQL dazu bewegen, auch ungünstige Zeichenkombinationen als Spalten- oder Tabellennamen zu interpretieren, jedoch ist das stets ein Indiz dafür, dass Deine Benamsung ungünstig ist; außerdem ist an "eingabe" nichts, was irgendwie kritisch wäre.
Die Abfrage mit
WHERE 'Die Antwort lautet Affe' LIKE CONCAT( eingabe
, '%' )
liefert aber außer "Die Antwort lautet" auch noch Einträge, die nur aus einem "d" oder "die Antwort" bestehen zurück. Diese Einträge sollten nicht matchen. Da müßte ich noch eine Spalte mit einem Flag vorsehen, um zu bestimmen, welche Einträge bei dieser Art der Abfrage einbezogen werden sollen.
Wenn es innerhalb der Spalte unterschiede gibt, wie sie zu bewerten gibt, musst Du in der Tat eine Lösung finden. Du könntest beispielsweise
- ein Flag setzen, wie von Dir vorgeschlagen;
- das '%' in den Spaltenwert aufnehmen, wie ursprünglich vorgesehen;
- statt nur einer zwei Spalten einsetzen, von denen eine den exakten Match und die andere ein Pattern Matching aufnimmt.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes