[SQL] 조건이 동일하지 않은 SQL?
SQL조건이 동일하지 않은 SQL?
이 where 절을 부정 할 수 있습니까?
EG
DELETE * FROM table WHERE id != 2;
해결법
-
==============================
1.당신은 다음과 같이 할 수있다
당신은 다음과 같이 할 수있다
DELETE FROM table WHERE id NOT IN ( 2 )
또는
DELETE FROM table WHERE id <> 2
@Frank 슈미트가 언급 한 바와 같이, 당신은 너무 NULL 값에 대한 조심해야 할 수 있습니다. 있습니다 (NULL을 포함)이 아닌 모든 것을 삭제 한 후 추가 또는 ID가 WHERE 절에 NULL IS하십시오.
-
==============================
2.귀하의 질문은 이미 다른 포스터 응답했다, 나처럼이 점을 지적하는 것
귀하의 질문은 이미 다른 포스터 응답했다, 나처럼이 점을 지적하는 것
delete from table where id <> 2
(또는 그 변형하지 ID = 2 등) ID는 삭제되지 NULL 행이 어디에.
당신은 또한 ID = NULL로 삭제 행합니다 :
delete from table where id <> 2 or id is NULL
-
==============================
3.
delete from table where id <> 2
편집 : MySQL을위한 올바른 구문
-
==============================
4.당신은 다음 작업을 수행 할 수 있습니다 :
당신은 다음 작업을 수행 할 수 있습니다 :
DELETE * FROM table WHERE NOT(id = 2);
-
==============================
5.사용은 <> where 절을 부정합니다.
사용은 <> where 절을 부정합니다.
-
==============================
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.ID가 <>이 잘 작동합니다 WHERE ... 당신이 후에 무엇인가요?
ID가 <>이 잘 작동합니다 WHERE ... 당신이 후에 무엇인가요?
-
==============================
8.예. 메모리 나를 제공하는 경우, 그 작업을해야합니다. 우리는 당신은 사용할 수 있습니다 :
예. 메모리 나를 제공하는 경우, 그 작업을해야합니다. 우리는 당신은 사용할 수 있습니다 :
DELETE FROM table WHERE id <> 2
-
==============================
9.가장 좋은 방법은 사용하는 것입니다
가장 좋은 방법은 사용하는 것입니다
DELETE FROM table WHERE id NOT IN ( 2 )
-
==============================
10.난 그냥이 문제를 해결했다. 당신이 <> 또는 사용하는 경우가 아닌 변수에에, 널 (null)입니다, 그것은 거짓 발생합니다. 그래서 그 대신 <> 1,이처럼 확인해야합니다 :
난 그냥이 문제를 해결했다. 당신이 <> 또는 사용하는 경우가 아닌 변수에에, 널 (null)입니다, 그것은 거짓 발생합니다. 그래서 그 대신 <> 1,이처럼 확인해야합니다 :
AND (isdelete is NULL or isdelete = 0)
from https://stackoverflow.com/questions/6156979/sql-where-condition-is-not-equal-to by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 간단한 날짜 시간 SQL 쿼리 (0) | 2020.07.23 |
---|---|
[SQL] PostgreSQL의 두 날짜 사이의 결과를 얻기 (0) | 2020.07.23 |
[SQL] 오라클 테이블의 재 순서는 열 (0) | 2020.07.23 |
[SQL] 후 SQL Server의 특정 문자 앞에 모든 것을 얻을 (0) | 2020.07.23 |
[SQL] SQLAlchemy의를 통해 임의의 행을 얻기 (0) | 2020.07.23 |