복붙노트

[SQL] SQL LIKE 절의 특수 문자 목록

SQL

SQL LIKE 절의 특수 문자 목록

LIKE 절 (나는 좋은 너무 것 SQL 서버 있지만, 다른의에 관심이 있어요)는 SQL에 대한 모든 특수 문자의 전체 목록은 무엇인가?

EG

SELECT Name FROM Person WHERE Name LIKE '%Jon%'

SQL 서버 :

MySQL은 :

신탁:

사이베이스

진행:

PostgreSQL의 :

ANSI SQL92 :

PostgreSQL은 또한 다음을 추가 유사한 TO 연산자를 가지고 :

아이디어는 이것에 대한 '원 스톱 샵'이 될 수 이것을 커뮤니티 위키를 만드는 것입니다.

해결법

  1. ==============================

    1.SQL Server의 경우, http://msdn.microsoft.com/en-us/library/ms179859.aspx에서 :

    SQL Server의 경우, http://msdn.microsoft.com/en-us/library/ms179859.aspx에서 :

  2. ==============================

    2.ANSI SQL92 :

    ANSI SQL92 :

    많은 데이터베이스 표준 규칙에 충실하고 추가 여분의 문자를, 또는 잘못이 없을 때 '\'의 기본값 ESCAPE을 사용하지 않는 것이 실망한다. 우리는 이미없는 것 충분히 문제가 '\'!

    그것은 당신이 탈출해야 할거야 어떤 문자를 모르기 때문에, 여기 DBMS 독립적 인 코드를 작성하는 것은 불가능하고, 표준은 탈출 할 필요가없는 일을 벗어날 수 없다 말한다. (참조 섹션 8.5 / 일반 규칙 / 3.a.ii.)

    당신은 SQL 감사합니다! gnnn

  3. ==============================

    3.당신은 별도의 추가 할 필요가 있음을 추가해야합니다 SQL 서버에서 '탈출을 기존'

    당신은 별도의 추가 할 필요가 있음을 추가해야합니다 SQL 서버에서 '탈출을 기존'

    스미스의 -> 스미스 '의

  4. ==============================

    4.SYBASE :

    SYBASE :

    %              : Matches any string of zero or more characters.
    _              : Matches a single character.
    [specifier]    : Brackets enclose ranges or sets, such as [a-f] 
                     or [abcdef].Specifier  can take two forms:
    
                     rangespec1-rangespec2: 
                       rangespec1 indicates the start of a range of characters.
                       - is a special character, indicating a range.
                       rangespec2 indicates the end of a range of characters.
    
                     set: 
                      can be composed of any discrete set of values, in any 
                      order, such as [a2bR].The range [a-f], and the 
                      sets [abcdef] and [fcbdae] return the same 
                      set of values.
    
                     Specifiers are case-sensitive.
    
    [^specifier]    : A caret (^) preceding a specifier indicates 
                      non-inclusion. [^a-f] means "not in the range 
                      a-f"; [^a2bR] means "not a, 2, b, or R."
    
  5. ==============================

    5.난 그냥 단지 SQL의 아래에 Linq를 실행하고 다음과 같은 SQL 문을 생성해야 SQL Server와 LinqPad를 사용하여 테스트를 실행 흥미 롭군요.

    난 그냥 단지 SQL의 아래에 Linq를 실행하고 다음과 같은 SQL 문을 생성해야 SQL Server와 LinqPad를 사용하여 테스트를 실행 흥미 롭군요.

    기록     어디에요 (R => r.Name.Contains ( "lkjwer --_ ~ []"))

    -- Region Parameters
    DECLARE @p0 VarChar(1000) = '%lkjwer--~_~~~[]%'
    -- EndRegion
    SELECT [t0].[ID], [t0].[Name]
    FROM [RECORDS] AS [t0]
    WHERE [t0].[Name] LIKE @p0 ESCAPE '~'
    

    나는 아직 테스트하지 않은 있지만, 자동 표현처럼 내에서 사용하기 위해 문자열의 탈출을 허용 할 수있다 잠재적 ESCAPE '~'키워드처럼 보인다 그래서.

  6. from https://stackoverflow.com/questions/712580/list-of-special-characters-for-sql-like-clause by cc-by-sa and MIT license