sql >> Database >  >> RDS >> Mysql

Waarom moet ik dubbel escapen (gebruik 4 \) om een ​​backslash ( \ ) te vinden in pure SQL?

U escape eerst voor de tekenreekssyntaxis en vervolgens voor LIKE syntaxis.

In LIKE tekens % en _ hebben een speciale betekenis, dus als u letterlijk wilt zoeken naar % , moet u \% . gebruiken , en als u wilt zoeken naar letterlijke \% je moet ontsnappen aan de backslash zoals in \\% .

In tekenreekssyntaxis " heeft duidelijk een speciale betekenis, dus als je een aanhalingsteken in de tekenreeks wilt opnemen, moet je er ontsnappen als \" , en om letterlijk \" . op te nemen in de string moet je de backslash escapen zoals in \\" .

Dus in beide syntaxis moet je ontsnappen aan \ .

Als u \ . niet wilt gebruiken om aan het LIKE-patroon te ontsnappen, kunt u het ESCAPE-sleutelwoord gebruiken. Bijvoorbeeld:

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

Op deze manier moet je |% . schrijven , |_ of || om aan deze speciale tekens te ontsnappen.



  1. Tijdelijke oplossing in mysql voor gedeeltelijke index of gefilterde index?

  2. hoe laadtijd in milliseconden of microseconden in mysql te krijgen

  3. Analytische functies gebruiken in Oracle (Over partitie op trefwoord)

  4. 3 dingen die u moet weten over databases