sql >> Database teknologi >  >> RDS >> Sqlserver

Escape af specialtegn i en SQL LIKE-sætning ved hjælp af sql-parametre

Du har to muligheder:

  • omslutt dem i [ og ] . Så:

    where pattern like '[%]'
    

    Søger efter procenttegn. Fuld liste over tegn, der skal escapes - '_', '%', '[', ']' med tilsvarende erstatninger '[_]', '[%]', '[[]', '[]]' . Eksempelkode kan findes i Escaping af escape-tegnet virker ikke – SQL LIKE Operator

  • brug et escape-tegn, der sandsynligvis ikke er i strengen, såsom et backtick:

    where pattern like '`%' escape '`'
    

    (Se syntaksen på MSDN - LIKE (Transact-SQL) .)

I begge tilfælde vil jeg foreslå, at du laver substitutionen i applikationslaget, men du kan også gøre det i SQL, hvis du virkelig vil:

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

Og at give slutbrugeren adgang til jokertegn kan være en god ting i forhold til brugergrænsefladen.

Bemærk:der er et par specialtegn mere '-' og '^' i LIKE-forespørgslen, men de behøver ikke escapes, hvis du allerede escaper '[' og ']' .



  1. Kombiner to tabeller til en ny, så udvalgte rækker fra den anden ignoreres

  2. Sådan bruger du INNER JOIN i SQL

  3. Sådan får du gendannelsesmodellen for en database i SQL Server ved hjælp af T-SQL

  4. Opret forbindelse til ONLINE MySQL-database ved hjælp af DSN ODBC