Hallo Stephan,
das Escape-Zeichen gilt nur für die Zeichen, die als Wildcard-Zeichen vertreten sind. Und das sind nur % und _, nicht aber *. Ich weiß nicht, weshalb auch bei der MariaDB nur die direkte SQL-Ausführung der Abfrage hier korrekt reagiert.
Und jetzt kommt der Geck:
Code: Alles auswählen
SELECT * FROM `Firma` WHERE `Firmenname` LIKE '%$*%' ESCAPE '$'
funktioniert anscheinend wieder.
Ich gehe davon aus, dass Base da irgendetwas intern quer verarbeitet. Hinter ESCAPE darf so bei der MariaDB nur ein Zeichen stehen, das nicht dem ursprünglichen Escape-Zeichen entspricht.
Nehme ich stattdessen bei mir den Weg über PHPMyAdmin, dann funktioniert einfach '%*%' wie gewünscht, da eben das Sternchen kein Wildcardzeichen in diesem Zusammenhang ist.
Am meisten Sorge von der Programmgestaltung her macht mir hier Extras → SQL. Von dem sollte ja erwartet werden, dass der Code nicht irgendwo noch umgeändert wird, bevor er zur Datenbank läuft - so wie eben bei einer Abfrage, die in direktem SQL ausgeführt wird. Und genau wie Extras → SQL verhält sich hier die Makroanbindung.
Gruß
Robert