[SQL] 사용 '='또는 LIKE는 SQL에서 문자열을 비교?
SQL사용 '='또는 LIKE는 SQL에서 문자열을 비교?
당신이 좋아하거나 사용해야하는 경우 (거의 종교) 논의가있다 '를 ='SQL 문에서 문자열을 비교합니다.
해결법
-
==============================
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.LIKE 및 항등 연산자는이 같은 일을하지 않는, 서로 다른 목적을 가지고 : = LIKE 와일드 카드 해석 할 수있는 반면에, 훨씬 빠릅니다. 사용 = 어디서나 할 수 있고 원하는 위치 당신이해야합니다.
LIKE 및 항등 연산자는이 같은 일을하지 않는, 서로 다른 목적을 가지고 : = LIKE 와일드 카드 해석 할 수있는 반면에, 훨씬 빠릅니다. 사용 = 어디서나 할 수 있고 원하는 위치 당신이해야합니다.
SELECT * FROM user WHERE login LIKE 'Test%';
샘플 일치 :
-
==============================
3.내 작은 경험에서 :
내 작은 경험에서 :
"="에 대한 정확한 일치.
부분 일치를위한 "LIKE".
-
==============================
4.다른 트릭의 몇 가지의 해당 문자열 매칭을위한 포스트 그레스 제공 (즉, 귀하의 DB 될 일 경우)
다른 트릭의 몇 가지의 해당 문자열 매칭을위한 포스트 그레스 제공 (즉, 귀하의 DB 될 일 경우)
LIKE 일치를 구분 경우입니다 ILIKE :
select * from people where name ilike 'JOHN'
성냥:
당신이 정말로 화가 싶다면 당신은 정규 표현식을 사용할 수 있습니다 :
select * from people where name ~ 'John.*'
성냥:
-
==============================
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.패턴 매칭을 사용 LIKE. 정확한 일치 =하십시오.
패턴 매칭을 사용 LIKE. 정확한 일치 =하십시오.
-
==============================
7.LIKE 패턴 매칭에 사용되며 = (사용 조합으로 정의 됨) 동등 검사에 사용된다.
LIKE 패턴 매칭에 사용되며 = (사용 조합으로 정의 됨) 동등 검사에 사용된다.
= LIKE는 일반적으로 (당신이 전체 텍스트 검색을 사용하지 않는 경우) 그래서 = 더 나은 성능을 가지고 그것을 필터링 결과 집합에있는 모든 단일 레코드를 테스트 할 필요 쿼리 동안 인덱스를 사용할 수 있습니다.
-
==============================
8.LIKE 쉘에서 [? *] 와일드 카드 문자를 같이 일치 않는다 LIKE는 '% 접미사'- 나에게 모든 것을 제공 접미사로 끝나는. 당신은 =로 그렇게 할 수 실제로 경우에 따라 다릅니다.
LIKE 쉘에서 [? *] 와일드 카드 문자를 같이 일치 않는다 LIKE는 '% 접미사'- 나에게 모든 것을 제공 접미사로 끝나는. 당신은 =로 그렇게 할 수 실제로 경우에 따라 다릅니다.
-
==============================
9."좋아요"를 사용하는 또 다른 이유가 성능이 느린 경우에도 그래서, 비교했을 때 문자 값이 암시 적으로 정수로 변환됩니다 :
"좋아요"를 사용하는 또 다른 이유가 성능이 느린 경우에도 그래서, 비교했을 때 문자 값이 암시 적으로 정수로 변환됩니다 :
@transid VARCHAR 선언 (15)
만약 @transid! = 0
당신에게 줄 것이다 오류 "는 VARCHAR 값 '123456789012345'의 변환을하는 int 열이 오버플로".
from https://stackoverflow.com/questions/515039/use-or-like-to-compare-strings-in-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] DB를 컬럼의 목록을 저장하는 방법 (0) | 2020.05.19 |
---|---|
[SQL] 번호로 주문에 대한 SQL - 1,2,3,4 등 대신 1,10,11,12 (0) | 2020.05.18 |
[SQL] ON [PRIMARY]은 무엇을 의미합니까? (0) | 2020.05.18 |
[SQL] 문 수준 트리거 대 행 수준 트리거 (0) | 2020.05.18 |
[SQL] 그것은 DBMS의 맥락에서 정확히 BLOB 무엇입니까 (0) | 2020.05.18 |