What does \ (backslash) mean in an SQL query?

后端 未结 2 1842
无人共我
无人共我 2020-12-17 03:16

I have the following query

SELECT txt1 FROM T1 WHERE txt1 LIKE \'_a\\%\'

will that result in answers that have any char+a+\\+whatever?

相关标签:
2条回答
  • 2020-12-17 03:16

    % is a wildcard character that matches zero or more characters in a LIKE clause. _ is a wildcard character that maches exactly one character in a LIKE clause.

    \ is a special character known as an escape character that indicates that the character directly following it should be interpreted literally (useful for single quotes, wildcard characters, etc.).

    For example:

    SELECT txt1 FROM T1 WHERE txt1 LIKE '_a%'
    

    will select records with txt1 values of 'xa1', 'xa taco', 'ya anything really', etc.

    Now let's say you want to actually search for the percent sign. In order to do this you need a special character that indicates % should not be treated as a wildcard. For example:

    SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%'
    

    will select records with txt1 values of 'ba%' (but nothing else).

    Finally, a LIKE clause would typically contain a wildcard (otherwise you could just use = instead of LIKE). So you might see a query containing \%%. Here the first percent sign would be treated as a literal percent sign, but the second would be interpreted as a wildcard. For example:

    SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%%'
    

    will select records with txt1 values of 'da%something else', 'fa% taco', 'ma% bunch of tacos', etc.

    0 讨论(0)
  • 2020-12-17 03:27

    The LIKE clause allows you to find text when you don't know the exact value, such as names beginning with JO would be

    LIKE 'JO%'
    

    However, if you are search for something ending with a%, then you need to tell SQL to treat the % as part of what you are searching for. In your example, you are looking for a 3 character string, you don't care what the first letter is, but has to end with a%.

    0 讨论(0)
提交回复
热议问题