sql >> Database >  >> RDS >> Sqlserver

Ontsnappen aan speciale tekens in een SQL LIKE-instructie met behulp van sql-parameters

Je hebt twee opties:

  • zet ze in [ en ] . Dus:

    where pattern like '[%]'
    

    Zoekt naar het percentageteken.Volledige lijst met tekens om te ontsnappen - '_', '%', '[', ']' met bijbehorende vervangingen '[_]', '[%]', '[[]', '[]]' . Voorbeeldcode is te vinden in Escape-tekens ontsnappen werkt niet – SQL LIKE-operator

  • gebruik een escape-teken dat waarschijnlijk niet in de string voorkomt, zoals een backtick:

    where pattern like '`%' escape '`'
    

    (Zie de syntaxis op MSDN - LIKE (Transact-SQL) .)

In beide gevallen zou ik willen voorstellen dat u de vervanging in de applicatielaag maakt, maar u kunt het ook in SQL doen als u dat echt wilt:

where pattern like replace(@pattern, '%', '[%]')

En het kan een goede zaak zijn om de eindgebruiker toegang te geven tot wildcards in termen van de gebruikersinterface.

Opmerking:er zijn nog een paar speciale tekens '-' en '^' in de LIKE-query, maar ze hoeven niet te worden geëscaped als u al aan het escapen bent voor '[' en ']' .



  1. Tel het aantal dagen tussen 2 datums in JPA

  2. Hoe te verhogen in SQL met behulp van een trigger?

  3. Hoe onzichtbare Unicode-tekens in psql / postgres weer te geven?

  4. Hoe selecteer je meerdere rijen gevuld met constanten in Amazon Redshift?