본문 바로가기
programming/DataManage

mysql select 조건절 not 사용 using mysql select not condition

by 개코 - 개발과 코딩 2022. 5. 15.

mysql 에서 데이터 검색시 특정 데이터를 제외하고자 한다면 NOT 키워드를 사용하면 되며 WHERE 조건절과 함께 사용할 수 있다. NOT 키워드의 사용은 간단한데 제외하고자 하는 데이터를 검색 조건절인 WHER 조건절에 작성해 준 후 앞에 NOT 키워드를 적어주면 된다.

mysql select 조건절 not 사용
using mysql select not condition

데이터를 검색하는 것은 원하는 값을 찾는 것을 말한다.

mysql 에서 SELECT 구문의 WHERE 절과 AND, OR 조건절을 사용하면 원하는 데이터를 검색할 수 있다.

반대의 경우도 발생할 수 있다.

원하는 데이터를 찾기 위해 불필요한 데이터를 거르는 것이 오히려 효율적인 경우도 있다.

mysql의 SELECT 조건절에서 특정 데이터를 거르기 위해 사용하는 키워드는 NOT 을 사용하면 된다.

SELECT 검색조건 NOT 조건절

SELECT 의 조건절에서 컬럼명에 값을 비교하면 원하는 데이터를 찾을 수 있다.

이 조건절에 NOT 을 붙여주면 반대의 결과를 볼 수 있다.

SELECT 조건절에서 NOT 의 역할은 어떤 데이터들을 검색할 때 원하지 않는 데이터를 거를 수 있다.

테이블에서 abc 라는 데이터를 찾고 싶다면 WHERE 조건절에 컬럼명 = abc 로 입력하여 실행하면 되지만, 반대의 경우 abc 데이터를 제외하고자 한다면 WHERE 조건절에 NOT 컬럼명 = abc 로 입력하면 된다.

아래는 NOT 키워드를 사용하여 특정 데이터를 제외하는 구분이다.

SELECT * [, 컬럼명, 컬럼명, ~ ] FROM 테이블명
 WHERE NOT 컬럼명 = 값

샘플코드

이제 mysql 의 SELECT 구문에서 NOT 키워드를 사용하여 특정 데이터를 제외하도록 하는 쿼리 예제를 만들어 본다.

기존에 사용하던 쿼리를 조금 수정해서 사용할 것이며 테이블 생성부터 삭제까지 진행해 보도록 한다.

중간 부분의 NOT 키워드가 들어간 SELECT 구문만을 확인하면 된다.

NOT 키워드의 기능은 원하지 않는 데이터를 제외하는 것임을 다시 한번 상기하자.

/** tb_sample 테이블을 생성 */
CREATE TABLE tb_sample (
	idx INT,
	company VARCHAR(250),
	title VARCHAR(250),
	content TEXT,
	insert_date DATETIME,
	update_date DATETIME
)
;

/** tb_sample 테이블에 데이터 추가  */
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES( '1', '현대자동차', '제목1', '내용1', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES( '2', '기아자동차', '제목2', '내용2', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES
( '3', '현대자동차', '제목3', '내용3', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '4', '기아자동차', '제목4', '내용4', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '5', '쌍용자동차', '제목5', '내용5', NOW(), NOW() )
;

SELECT * FROM tb_sample
;

SELECT * FROM tb_sample
 WHERE NOT company = '현대자동차'
;

SELECT * FROM tb_sample
 WHERE NOT company = '현대자동차'
   AND NOT title = '제목2'
;

SELECT * FROM tb_sample
 WHERE NOT company = '현대자동차'
   AND NOT ( title = '제목2' OR title = '제목4' )
;

/** tb_sample 테이블 데이터 삭제  */
DELETE FROM tb_sample
;

/** tb_sample 테이블 데이터 완전 삭제  */
TRUNCATE tabLE tb_sample
;

/** tb_sample 테이블 삭제  */
DROP TABLE tb_sample
;

/*-----*/

코드는 길지만 중간에 있는 SELECT 구문과 NOT 키워드만을 보면 된다.

첫번째는 회사명 컬럼에서 현대자동차가 들어간 데이터를 제외하는 구문이다.

추가로 제목이 제목2인 데이터를 제외하도록 AND 절을 같이 사용하고 있다.

마지막으로 회사명 컬럼에서 현대자동차 가 들어간 데이터를 제외하고 추가로 제목이 제목2 또는 제목4인 자료를 동시에 제외할 수 있다.

결과화면을 보자.

반응형

댓글