복붙노트

[SQL] 사용 '='또는 LIKE는 SQL에서 문자열을 비교?

SQL

사용 '='또는 LIKE는 SQL에서 문자열을 비교?

당신이 좋아하거나 사용해야하는 경우 (거의 종교) 논의가있다 '를 ='SQL 문에서 문자열을 비교합니다.

해결법

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

    1.성능 차이를 확인하려면,이 시도 :

    성능 차이를 확인하려면,이 시도 :

    SELECT count(*)
    FROM master..sysobjects as A
    JOIN tempdb..sysobjects as B
    on A.name = B.name
    
    SELECT count(*)
    FROM master..sysobjects as A
    JOIN tempdb..sysobjects as B
    on A.name LIKE B.name
    

    와 문자열 비교 '='훨씬 빠릅니다.

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

    2.LIKE 및 항등 연산자는이 같은 일을하지 않는, 서로 다른 목적을 가지고 : = LIKE 와일드 카드 해석 할 수있는 반면에, 훨씬 빠릅니다. 사용 = 어디서나 할 수 있고 원하는 위치 당신이해야합니다.

    LIKE 및 항등 연산자는이 같은 일을하지 않는, 서로 다른 목적을 가지고 : = LIKE 와일드 카드 해석 할 수있는 반면에, 훨씬 빠릅니다. 사용 = 어디서나 할 수 있고 원하는 위치 당신이해야합니다.

    SELECT * FROM user WHERE login LIKE 'Test%';
    

    샘플 일치 :

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

    3.내 작은 경험에서 :

    내 작은 경험에서 :

    "="에 대한 정확한 일치.

    부분 일치를위한 "LIKE".

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

    4.다른 트릭의 몇 가지의 해당 문자열 매칭을위한 포스트 그레스 제공 (즉, 귀하의 DB 될 일 경우)

    다른 트릭의 몇 가지의 해당 문자열 매칭을위한 포스트 그레스 제공 (즉, 귀하의 DB 될 일 경우)

    LIKE 일치를 구분 경우입니다 ILIKE :

    select * from people where name ilike 'JOHN'
    

    성냥:

    당신이 정말로 화가 싶다면 당신은 정규 표현식을 사용할 수 있습니다 :

    select * from people where name ~ 'John.*'
    

    성냥:

  5. ==============================

    5.그냥 머리 위로, 거래-SQL에 공백과 '='연산자의 의지 패드 문자열로. 그래서 'ABC'= 'ABC'true를 돌려줍니다; 'ABC'LIKE 'ABC'false를 돌려줍니다. 대부분의 경우 '='올바른 수 있지만 내 최근의 경우는 아니었다.

    그냥 머리 위로, 거래-SQL에 공백과 '='연산자의 의지 패드 문자열로. 그래서 'ABC'= 'ABC'true를 돌려줍니다; 'ABC'LIKE 'ABC'false를 돌려줍니다. 대부분의 경우 '='올바른 수 있지만 내 최근의 경우는 아니었다.

    '='빠른 그래서 동안, LIKE 더 명시 적으로 의도를 명시 할 수도 있습니다.

    http://support.microsoft.com/kb/316626

  6. ==============================

    6.패턴 매칭을 사용 LIKE. 정확한 일치 =하십시오.

    패턴 매칭을 사용 LIKE. 정확한 일치 =하십시오.

  7. ==============================

    7.LIKE 패턴 매칭에 사용되며 = (사용 조합으로 정의 됨) 동등 검사에 사용된다.

    LIKE 패턴 매칭에 사용되며 = (사용 조합으로 정의 됨) 동등 검사에 사용된다.

    = LIKE는 일반적으로 (당신이 전체 텍스트 검색을 사용하지 않는 경우) 그래서 = 더 나은 성능을 가지고 그것을 필터링 결과 집합에있는 모든 단일 레코드를 테스트 할 필요 쿼리 동안 인덱스를 사용할 수 있습니다.

  8. ==============================

    8.LIKE 쉘에서 [? *] 와일드 카드 문자를 같이 일치 않는다 LIKE는 '% 접미사'- 나에게 모든 것을 제공 접미사로 끝나는. 당신은 =로 그렇게 할 수 실제로 경우에 따라 다릅니다.

    LIKE 쉘에서 [? *] 와일드 카드 문자를 같이 일치 않는다 LIKE는 '% 접미사'- 나에게 모든 것을 제공 접미사로 끝나는. 당신은 =로 그렇게 할 수 실제로 경우에 따라 다릅니다.

  9. ==============================

    9."좋아요"를 사용하는 또 다른 이유가 성능이 느린 경우에도 그래서, 비교했을 때 문자 값이 암시 적으로 정수로 변환됩니다 :

    "좋아요"를 사용하는 또 다른 이유가 성능이 느린 경우에도 그래서, 비교했을 때 문자 값이 암시 적으로 정수로 변환됩니다 :

    @transid VARCHAR 선언 (15)

    만약 @transid! = 0

    당신에게 줄 것이다 오류 "는 VARCHAR 값 '123456789012345'의 변환을하는 int 열이 오버플로".

  10. from https://stackoverflow.com/questions/515039/use-or-like-to-compare-strings-in-sql by cc-by-sa and MIT license