복붙노트

[SQL] 조건이 동일하지 않은 SQL?

SQL

조건이 동일하지 않은 SQL?

이 where 절을 부정 할 수 있습니까?

EG

DELETE * FROM table WHERE id != 2;

해결법

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

    1.당신은 다음과 같이 할 수있다

    당신은 다음과 같이 할 수있다

    DELETE FROM table WHERE id NOT IN ( 2 )
    

    또는

    DELETE FROM table WHERE id <>  2 
    

    @Frank 슈미트가 언급 한 바와 같이, 당신은 너무 NULL 값에 대한 조심해야 할 수 있습니다. 있습니다 (NULL을 포함)이 아닌 모든 것을 삭제 한 후 추가 또는 ID가 WHERE 절에 NULL IS하십시오.

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

    2.귀하의 질문은 이미 다른 포스터 응답했다, 나처럼이 점을 지적하는 것

    귀하의 질문은 이미 다른 포스터 응답했다, 나처럼이 점을 지적하는 것

     delete from table where id <> 2
    

    (또는 그 변형하지 ID = 2 등) ID는 삭제되지 NULL 행이 어디에.

    당신은 또한 ID = NULL로 삭제 행합니다 :

    delete from table where id <> 2 or id is NULL
    
  3. ==============================

    3.

    delete from table where id <> 2
    

    편집 : MySQL을위한 올바른 구문

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

    4.당신은 다음 작업을 수행 할 수 있습니다 :

    당신은 다음 작업을 수행 할 수 있습니다 :

    DELETE * FROM table WHERE NOT(id = 2);
    
  5. ==============================

    5.사용은 <> where 절을 부정합니다.

    사용은 <> where 절을 부정합니다.

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

    6.형식 논리와 대수로 돌아 봐. 같은 식

    형식 논리와 대수로 돌아 봐. 같은 식

    A & B & (D | E)
    

    몇 가지 방법으로 무효화 될 수 있습니다 :

    따라서, 일반적으로, 언제 어디 절에 위의 규칙에 따라 무효화 될 수 있습니다. 이것의 부정

    select *
    from foo
    where      test-1
      and      test-2
      and (    test-3
            OR test-4
          )
    

    이다

    select *
    from foo
    where NOT(          test-1
               and      test-2
               and (    test-3
                     OR test-4
                   )
             )
    

    또는

    select *
    from foo
    where        not test-1
      OR         not test-2
      OR   (     not test-3
             and not test-4
           )
    

    어떤게 더 좋아? 그것은 매우 상황에 맞는 질문입니다. 오직 당신 만이 결정할 수 있습니다.

    NOT의 사용이 최적화 또는 할 수있는 일과 할 수없는 일에 영향을 줄 수 있다고하지만,주의하십시오. 당신은 최적의 쿼리 계획보다 더 적은을 얻을 수 있습니다.

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

    7.ID가 <>이 잘 작동합니다 WHERE ... 당신이 후에 무엇인가요?

    ID가 <>이 잘 작동합니다 WHERE ... 당신이 후에 무엇인가요?

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

    8.예. 메모리 나를 제공하는 경우, 그 작업을해야합니다. 우리는 당신은 사용할 수 있습니다 :

    예. 메모리 나를 제공하는 경우, 그 작업을해야합니다. 우리는 당신은 사용할 수 있습니다 :

    DELETE FROM table WHERE id <> 2
    
  9. ==============================

    9.가장 좋은 방법은 사용하는 것입니다

    가장 좋은 방법은 사용하는 것입니다

    DELETE FROM table WHERE id NOT IN ( 2 )
    
  10. ==============================

    10.난 그냥이 문제를 해결했다. 당신이 <> 또는 사용하는 경우가 아닌 변수에에, 널 (null)입니다, 그것은 거짓 발생합니다. 그래서 그 대신 <> 1,이처럼 확인해야합니다 :

    난 그냥이 문제를 해결했다. 당신이 <> 또는 사용하는 경우가 아닌 변수에에, 널 (null)입니다, 그것은 거짓 발생합니다. 그래서 그 대신 <> 1,이처럼 확인해야합니다 :

     AND (isdelete is NULL or isdelete = 0)
    
  11. from https://stackoverflow.com/questions/6156979/sql-where-condition-is-not-equal-to by cc-by-sa and MIT license