복붙노트

[SQL] "LIKE"과의 차이점은 SQL에서 "="는 무엇인가요?

SQL

"LIKE"과의 차이점은 SQL에서 "="는 무엇인가요?

어떤 차이 사이가 있습니까 :

SELECT * FROM users WHERE username="davyjones"

SELECT * FROM users WHERE username LIKE "davyjones"

(난 ... 구문을 실수 한 것 같아 그 날 용서, 나는) 주로 데스크톱 응용 프로그램 개발 사나이

해결법

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

    1.SQL 표준에 따라, 차이는 CHAR 컬럼에 공백을 후행의 치료입니다. 예:

    SQL 표준에 따라, 차이는 CHAR 컬럼에 공백을 후행의 치료입니다. 예:

    create table t1 ( c10 char(10) );
    insert into t1 values ('davyjones');
    
    select * from t1 where c10 = 'davyjones';
    -- yields 1 row
    
    select * from t1 where c10 like 'davyjones';
    -- yields 0 rows
    

    물론, 당신이 표준을 준수하는 DBMS에서이 작업을 실행 가정. BTW,이 문자와 VARCHAR에 사이에 하나의 주요 차이점이다.

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

    2.LIKE 정확한 일치를위한 검사 동안 = 와일드 카드의 부분 검색 / 사용할 수있다.

    LIKE 정확한 일치를위한 검사 동안 = 와일드 카드의 부분 검색 / 사용할 수있다.

    예를 들면

    SELECT * FROM test WHERE field LIKE '%oom';
    

    필드 값은 다음 중 하나입니다 행을 반환합니다 :

    Zoom, Boom, Loom, Groom
    
  3. ==============================

    3.이 경우, 결과에 와서 아무런 차이가 없다. 그러나, 그것은을 비교 한위한 다른 방법을 사용하고, "LIKE"는 훨씬 느린 것입니다.

    이 경우, 결과에 와서 아무런 차이가 없다. 그러나, 그것은을 비교 한위한 다른 방법을 사용하고, "LIKE"는 훨씬 느린 것입니다.

    LIKE의 예는이 체크 아웃 : http://www.techonthenet.com/sql/like.php

    이 경우, 당신은 여전히 ​​등호를 사용하고 싶습니다.

    업데이트 : 그것은 결과가 다를 수있는 CHAR 유형의 컬럼에 올 때 중요한 차이가 참고있다. 자세한 내용은이 대답을 참조하십시오. VARCHAR (아마도 표준)을 사용하는 경우, 상기 동일과 같음이 바람직 할 것이다.

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

    4.LIKE가 _ %와 같은 와일드 카드 (여기에서 문자의 수)와 수 (한 문자 여기).

    LIKE가 _ %와 같은 와일드 카드 (여기에서 문자의 수)와 수 (한 문자 여기).

    SELECT * FROM users WHERE username LIKE 'joe%'
    

    선택 조로 시작하는 모든 사용자 이름을.

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

    5.

    create table A (id int,name varchar(30))
    
    insert into A values(4,'subhash')
    

    이름 필드를 검색 할 후행 공백을 사용합니다 :

    select * from A where name='Subhash '
    --Yields 1 row
    select * from A where name like 'Subhash '
    --Yields 0 row
    
  6. ==============================

    6.패턴에 대한 LIKE 검색합니다.

    패턴에 대한 LIKE 검색합니다.

    /* Returns all users whose username starts with "d" */
    SELECT * FROM users WHERE username LIKE 'd%'
    
    /* Returns all users whose username contains "dav" */
    SELECT * FROM users WHERE username LIKE '%dav%'
    
  7. ==============================

    7.그것은 당신에게 동일한 결과를 줄 것이다. 그러나 LIKE 예를 들어, 와일드 카드를 허용 ...

    그것은 당신에게 동일한 결과를 줄 것이다. 그러나 LIKE 예를 들어, 와일드 카드를 허용 ...

    SELECT * FROM users WHERE username LIKE 'davy%'
    

    유일한 구문 문제는 큰 따옴표 대신 작은 따옴표이었다

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

    8.LIKE 와일드 카드를 지원합니다. 보통은 와일드 카드에 대한 % 또는 _ 문자를 사용합니다.

    LIKE 와일드 카드를 지원합니다. 보통은 와일드 카드에 대한 % 또는 _ 문자를 사용합니다.

    와일드 카드로 LIKE 연산자를 사용 = 연산자를 사용하는 것과 동일하다.

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

    9.등의 조건은 사용 와일드 카드로 할 수 있습니다 :

    등의 조건은 사용 와일드 카드로 할 수 있습니다 :

    SELECT * FROM suppliers
    WHERE supplier_name like 'Hew%';
    

    더 많은 예제를 참조하십시오.

    과 같음 = 평등 매칭에 사용된다.

  10. ==============================

    10.등을 패턴 매칭 연산자이며 = 완전 검색 연산자이다. 즉 W % 같은 이름이 W와 하나 이상의 문자 후에 시작 위치를 의미 및 = 즉 이름 = '제임스이 정확한 매칭이며

    등을 패턴 매칭 연산자이며 = 완전 검색 연산자이다. 즉 W % 같은 이름이 W와 하나 이상의 문자 후에 시작 위치를 의미 및 = 즉 이름 = '제임스이 정확한 매칭이며

  11. ==============================

    11.같음 '='단지 평등을위한 것입니다. 반면에, LIKE 지원은 와일드 카드 매칭을 SQL.

    같음 '='단지 평등을위한 것입니다. 반면에, LIKE 지원은 와일드 카드 매칭을 SQL.

    그래서, LIKE 당신은 존스로 끝나는 모든 이름을 얻기 위해 '존스 %'같은 이름을 할 수 있습니다. 등으로, 퍼센트 '%'문자가 무엇이든, 길이가 0 이상, 밑줄 문자, '_', 어떤 하나 개의 문자입니다.

  12. ==============================

    12.지금까지 내가 아는 한, 당신이 쓴 두 개의 선택에 차이하지만 시간 비용은 없습니다. 일반적으로 하나 개의 용도는 '문자열'을 의미 %와 함께있다. 나는 확실하지 인터넷 검색없이 그 무엇, '모든 문자'에 대한 LIKE와 함께 사용하는 문자도 있다고 생각.

    지금까지 내가 아는 한, 당신이 쓴 두 개의 선택에 차이하지만 시간 비용은 없습니다. 일반적으로 하나 개의 용도는 '문자열'을 의미 %와 함께있다. 나는 확실하지 인터넷 검색없이 그 무엇, '모든 문자'에 대한 LIKE와 함께 사용하는 문자도 있다고 생각.

    당신이 개 선택이 가서 LIKE는 정규 표현식 - 정렬의-방식으로 사용되기 때문에하지만, 내가 볼 수있는 유일한 차이는, 다른 실행 시간입니다.

  13. ==============================

    13.마찬가지로 당신을 위해 당신의 케이스에 사용할 수 있습니다, 와일드 카드 사업자와 협력에 당신을 얻을 같은 'davyjon %'모든 결과가 davyjon로 시작하려면 및 정확한 당신이 'davyjones'배치 할 수 있습니다 당신은 또한에 =를 사용할 수를 얻을 수 이 경우

    마찬가지로 당신을 위해 당신의 케이스에 사용할 수 있습니다, 와일드 카드 사업자와 협력에 당신을 얻을 같은 'davyjon %'모든 결과가 davyjon로 시작하려면 및 정확한 당신이 'davyjones'배치 할 수 있습니다 당신은 또한에 =를 사용할 수를 얻을 수 이 경우

  14. from https://stackoverflow.com/questions/1504990/whats-the-difference-between-like-and-in-sql by cc-by-sa and MIT license