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.
Ich hatte eine Suchabfrage von phpMyAdmin modifiziert und dort wieder ausgeführt (sonst wäre ich nicht auf die Backticks gekommen). Die Abfrage ohne die Backticks lieferte dabei keinen Treffer (der Spaltenname ist das unkritische "eingabe"). Es kann aber sein, daß ich einen anderen Fehler eingebaut hatte.
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;
Ich werde beides einsetzen, dann kann der Platzhalter nicht nur am Anfang oder Ende stehen, ungewollte Treffer werden unterbunden und die Abfrage kann effizienter gestaltet werden. Das Ganze mit nur geringfügig mehr Speicherbedarf.
Danke auch Dir