Moin Moin!
Dazu braucht es übrigens den ESCAPE-Zusatz nicht unbedingt, denn mit dem \ gibt es bereits ein Default-Escape-Zeichen.
Und genau das ist DB-spezifisch:
Oracle: If esc_char is not specified, then there is no default escape character.
PostgreSQL (8.3, 9.0): The default escape character is the backslash but a different one can be selected by using the ESCAPE clause. [...] It's also possible to select no escape character by writing ESCAPE ''. This effectively disables the escape mechanism, which makes it impossible to turn off the special meaning of underscore and percent signs in the pattern.
SQL Server (2008 R2, 2000): escape_character is a character expression that has no default and must evaluate to only one character.
MySQL: If you do not specify the ESCAPE character, “\” is assumed.
SQLite: If the optional ESCAPE clause is present, then the expression following the ESCAPE keyword must evaluate to a string consisting of a single character. This character may be used in the LIKE pattern to include literal percent or underscore characters. The escape character followed by a percent symbol (%), underscore (_), or a second instance of the escape character itself matches a literal percent symbol, underscore, or a single escape character, respectively.
Das lese ich so, dass SQLite kein Standard-Escape-Zeichen hat. Im Source-Code will ich jetzt nicht wühlen. ;-)
Also: Wenn man DB-übergreifend arbeiten will, immer ESCAPE angeben, wenn man nicht-triviale Ausdrücke rechts vom LIKE hat. Insbesondere, wenn die Ausdrücke vom User oder aus dem Netz kommen.
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".