복붙노트

[SQL] 이 필드를 $ X를 포함하지 않는 SQL 쿼리

SQL

이 필드를 $ X를 포함하지 않는 SQL 쿼리

나는 필드 1이 $ X를 포함하지 않는 행을 찾기 위해 SQL 쿼리를 찾고 싶어요. 이걸 어떻게 할 수 있습니까?

해결법

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

    1.이것은 어떤 종류의 필드입니까? IN 연산자는 하나의 필드와 함께 사용할 수 없습니다 만, 하위 쿼리 또는 미리 정의 된 목록과 사용하기위한 것입니다 :

    이것은 어떤 종류의 필드입니까? IN 연산자는 하나의 필드와 함께 사용할 수 없습니다 만, 하위 쿼리 또는 미리 정의 된 목록과 사용하기위한 것입니다 :

    -- subquery
    SELECT a FROM x WHERE x.b NOT IN (SELECT b FROM y);
    -- predefined list
    SELECT a FROM x WHERE x.b NOT IN (1, 2, 3, 6);
    

    당신이 문자열을 검색하는 경우, LIKE 연산자 갈 (하지만이 느려질 수) :

    -- Finds all rows where a does not contain "text"
    SELECT * FROM x WHERE x.a NOT LIKE '%text%';
    

    당신이 검색 문자열이 주어진 문자열로 시작해야합니다 있도록 당신이 그것을 제한하는 경우 (해당 필드에 대한 인덱스가있는 경우) 인덱스를 사용하고 합리적으로 빠르게 할 수 있습니다 :

    -- Finds all rows where a does not start with "text"
    SELECT * FROM x WHERE x.a NOT LIKE 'text%';
    
  2. ==============================

    2.테이블 SELECT * FROM WHERE 필드 1 NOT LIKE '%의 $ X %'; (반드시 피해야 할 SQL 주입에 제대로 사전에 $ X 탈출 확인)

    테이블 SELECT * FROM WHERE 필드 1 NOT LIKE '%의 $ X %'; (반드시 피해야 할 SQL 주입에 제대로 사전에 $ X 탈출 확인)

    편집 : NOT IN 뭔가 조금 다른 않습니다 - 귀하의 질문에 완전히 있도록 선택 사용할 하나의 선택되지 않습니다. LIKE는 'XXX %'인덱스를 사용할 수 있습니다. LIKE '% XXX'또는 LIKE '% XXX %'수 없습니다.

  3. from https://stackoverflow.com/questions/232935/sql-query-where-field-does-not-contain-x by cc-by-sa and MIT license