sql >> Databáze >  >> RDS >> Mysql

Proč potřebuji dvojité escapování (použijte 4 \), abych našel zpětné lomítko ( \ ) v čistém SQL?

Escape nejprve pro syntaxi řetězce a poté pro LIKE syntaxe.

V LIKE znaky % a _ mají zvláštní význam, takže pokud chcete hledat doslovné % , musíte použít \% , a pokud chcete hledat doslovný \% musíte ukončit zpětné lomítko jako v \\% .

V syntaxi řetězce " má zjevně zvláštní význam, takže pokud chcete do řetězce zahrnout uvozovky, musíte jej uvozovat jako \" a zahrnout doslovný \" v řetězci musíte ukončit zpětné lomítko jako v \\" .

Takže v obou syntaxích musíte escapovat \ .

Pokud nechcete používat \ pro opuštění vzoru LIKE můžete použít klíčové slovo ESCAPE. Například:

...  where test LIKE "a\\b%" ESCAPE '|';

Tímto způsobem budete muset napsat |% , |_ nebo || uniknout těmto speciálním znakům.



  1. Jak vyřešit CHYBU 1060:Duplicitní název sloupce pomocí Zobrazení -> Vytvořit zobrazení

  2. SQL Server Fulltextové vyhledávání Únikové znaky?

  3. Odesílání dat do databáze ve webové aplikaci React.js

  4. Nelze najít microsoft.sqlserver.batchparser.dll