chro
622
2020-02-11 15:41:34 작성 2020-02-11 15:42:00 수정됨
4
256

mysql 간단한 쿼리 질문입니다........


테이블 명 : board
컬럼 명 : file
제일 마지막 글자 : $$


SELECT file FROM board WHERE LENGTH(file) > 0 AND file NOT IN (file LIKE '%$$')


1. board테이블에서
2. file컬럼의 값의 길이가 0이상이고
3. 마지막글자가 $$가 아닌 데이터만 출력하는 쿼리문

이 아닌가요? 왜 $$가 있는것만뜰까요?

제가 지금 이해를 잘못하고있는건가요?..

0
0
  • 답변 4

  • 컾희
    442
    2020-02-11 15:55:44 작성 2020-02-11 15:56:21 수정됨

    and절을 not like 하면 되지 않을까요?

    0
  • chro
    622
    2020-02-11 16:04:53

    감사합니다 제가 너무 어렵게 생각했나봐요 ㄷㄷ..

    0
  • 잼재재미
    600
    2020-02-11 16:06:57 작성 2020-02-11 16:11:27 수정됨

    NOT IN 절에는 명확한 하나의 문자값이 들어가야합니다.

    근데 file LIKE '%$$'를 해버리면 BOARD 테이블에 어떤 컬럼을 문자값으로 쓸건지 명확하지 않으므로 빈값을 반환합니다.

    꼭 님이 작성하는 문법을 쓰시고 싶으시다면

     AND file NOT IN (select file  from board file LIKE '%$$');

    이렇게 작성해주셔야해요.


    정정합니다. file LIKE '%$$' <- 이문법은 해당하는 row count 값을 반환합니다.

    예를 들면 $$가 포함된 행이 2개 있으면 2를 반환합니다.

    0
  • 례구
    395
    2020-02-12 14:07:12

    마지막 조건절을 다음과 같이 씁니다.. 

    AND FILE NOT LIKE '%$$';

    NOT IN 은 보통 어느 조건 값에 해당되지 않는 데이터만 불러올때 쓰는데,

    그 괄호 안에 LIKE 조건은 잘 안쓰는거 같습니다.. .


    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.