복붙노트

[SQL] NOT LIKE IN과 SQL 쿼리

SQL

NOT LIKE IN과 SQL 쿼리

'NOT LIKE IN'과 같은 조건이있는 SQL 쿼리를 작성 도와주세요

Select * from Table1 where EmpPU NOT Like IN ('%CSE%', '%ECE%', '%EEE%')

오류가.

해결법

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

    1.당신은 같은과에 결합 할 수 없습니다 아래에있는 문은 작업 생각을 할 것이다. :

    당신은 같은과에 결합 할 수 없습니다 아래에있는 문은 작업 생각을 할 것이다. :

    Select * from Table1 
    where EmpPU NOT Like '%CSE%' 
    AND EmpPU NOT Like '%ECE%' 
    AND EmpPU NOT Like '%EEE%'
    
  2. ==============================

    2.당신이 두 개의 구문을 혼합하고 있기 때문에의 그.

    당신이 두 개의 구문을 혼합하고 있기 때문에의 그.

    당신은 항상 정확히 그 세 값이있는 경우, 수있는 단지 세 LIKE 표현식의 결과.

    SELECT
      *
    FROM
      Table1
    WHERE
          EmpPU NOT LIKE '%CSE%'
      AND EmpPU NOT LIKE '%ECE%'
      AND EmpPU NOT LIKE '%EEE%'
    

    당신이 값 "숫자"을 위해 그것을 할 필요가 있다면, 당신은 테이블에 값을 넣고 가입 할 수 있습니다.

    WITH
      myData
    AS
    (
                SELECT '%CSE%' AS match
      UNION ALL SELECT '%ECE%' AS match
      UNION ALL SELECT '%EEE%' AS match
    )
    
    SELECT
      *
    FROM
      Table1
    LEFT JOIN
      myData
        ON Table1.EmpPU LIKE myData.match
    WHERE
      myData.match IS NULL
    

    또는...

    WITH
      myData
    AS
    (
                SELECT '%CSE%' AS match
      UNION ALL SELECT '%ECE%' AS match
      UNION ALL SELECT '%EEE%' AS match
    )
    
    SELECT
      *
    FROM
      Table1
    WHERE
      NOT EXISTS (SELECT * FROM myData WHERE Table1.EmpPU LIKE match)
    
  3. ==============================

    3.당신이 포함 할 단어로 설정 한 경우 / 특정 열에서 검색에서 제외합니다. 당신은 MySQL의의 정규 표현식 기능을 사용할 수 있습니다.

    당신이 포함 할 단어로 설정 한 경우 / 특정 열에서 검색에서 제외합니다. 당신은 MySQL의의 정규 표현식 기능을 사용할 수 있습니다.

    열에서 단어의 집합 제외 :

    SELECT
      *
    FROM
      Table1
    WHERE
          EmpPU NOT REGEXP 'CSE|ECE|EEE';
    

    열에서 단어의 집합을 검색 :

    SELECT
      *
    FROM
      Table1
    WHERE
          EmpPU REGEXP 'CSE|ECE|EEE';
    
  4. ==============================

    4.당신은 LIKE 및 IN을 결합 캔트

    당신은 LIKE 및 IN을 결합 캔트

    넌 할 수있어:

    select * from Table1
    where EmpPU not in ('%CSE%', '%ECE%', '%EEE%')
    

    하지만 당신은 % 와일드 카드 혜택 실 거예요

    당신은 %를 필요로하는 경우 유일한 옵션은 다음과 같습니다

    Select * from Table1
    where EmpPU not like '%CSE%' and  EmpPU not like '%ECE%' and EmpPU not like '%EEE%'
    
  5. ==============================

    5.또는 당신은 이런 식으로 작업을 수행 할 수 있습니다 :

    또는 당신은 이런 식으로 작업을 수행 할 수 있습니다 :

    SELECT 
        * 
    FROM 
        Table1
    WHERE NOT EXISTS
        (
            SELECT
                NULL
            FROM
            (
                SELECT '%CSE%' AS column1 UNION ALL 
                SELECT '%ECE%' UNION ALL 
                SELECT '%EEE%'
            ) AS tbl
            WHERE Table1.EmpPU LIKE tbl.column1
        )
    
  6. ==============================

    6.당신이 시도 할 수 있습니다

    당신이 시도 할 수 있습니다

    Select * from Table1 where 
        EmpPU NOT Like '%CSE%'  
    AND EmpPU NOT Like '%ECE%' 
    AND EmpPU NOT Like '%EEE%'
    
  7. ==============================

    7.코드는 다음과 같다 :

    코드는 다음과 같다 :

    Select * from Table1 where 
            (EmpPU NOT Like '%CSE%'  
        OR EmpPU NOT Like '%ECE%' 
        OR EmpPU NOT Like '%EEE%')
    
  8. ==============================

    8.또는 사용 제외 :

    또는 사용 제외 :

        SELECT * FROM Table1 
        EXCEPT
        SELECT * FROM Table1 
        WHERE EmpPU LIKE '%CSE%'  
           OR EmpPU LIKE '%ECE%' 
           OR EmpPU LIKE '%EEE%'
    
  9. from https://stackoverflow.com/questions/9393439/sql-query-with-not-like-in by cc-by-sa and MIT license