Hi!
Erstens: MySQL ist richtig
Zweitens: die Abfrage endet mit "WHERE {Book}.Title LIKE '%%$value%%'"
Das ist nicht das Statement sondern irgendwelcher Code, der ein Statement zusammenbaut.
Was mit komisch vorkommt ist, dass das Abfrageverhalten abhängig ist von einem doppelten %-Zeichen. Das habe ich nirgends dokumentiert gefunden.
Wenn dieser dein Code das %% zu einem % interpretiert, wie es beispielsweise PHPs sprintf() macht, dann ...
Mach mal lieber eine Kontrollausgabe des fertigen Statements.
Setze ich den Suchwert zwischen einfache %-Zeichen, so ist das Abfrageverhalten wie beschreiben. Wird der Anfang des Suchstring klein geschrieben wird nichts gefunden, wird er Groß geschrieben, so wird der Feldinhalt gefunden.
Groß-Kleinschribung ist von der Kollation des Feldes abhängig, wobei hier üblicherweise nur bin(ary) oder nicht (=*_ci) in Frage kommt.
Wo finde ich die Angabe zur Collation? Ich glaube was mit utf8?
Schau in die Tabellendefinition, CREATE-Statement oder im Information_Schema.
- SHOW CREATE TABLE tbl_name
- SELECT collation_name FROM information_schema.columns WHERE table_schema='databasename' AND table_name='tablename' AND column_name='Title'
Lo!