mysql 문자열 변수선언 질문입니다 ! 0 2 2,214

by 파니동 [MySQL] [2019.01.28 17:57:41]


안녕하세요.

mysql 에서 변수를 선언하고 쿼리에서 사용하려고 하는데요.

 

-- 변수선언
SET @name = "'NAME1','NAME2'";


SELECT*
FROM TABLE1
WHERE NAME IN (@name)

 

위와 같이 조회하면 오류는 나지않고 조회가 되지 않습니다.

어떻게 조회를 해야할까요??

 

by 마농 [2019.01.28 18:19:19]

변수 안의 문자는
 - 두개의 문자가 아닙니다. NAME1 과 NAME 2 로 인식하는 게 아닙니다.
 - 하나의 문자로 인식합니다. 따옴표와 컴마가 포함된 하나의 긴 문자열.
문자열 비교방식으로 풀어 보겠습니다.
 - 따옴표는 번거로우니 제거하고
 - 앞뒤 컴마 붙여서 INSTR 이나 LIKE 검색하시면 됩니다.
 - 정규식을 이용한 검색도 가능합니다.

SET @name = 'NAME1,NAME2';

SELECT *
  FROM table1
 WHERE INSTR(CONCAT(',', @name, ','), CONCAT(',', name, ','))
-- WHERE CONCAT(',', @name, ',') LIKE CONCAT('%,', name, ',%')
-- WHERE name REGEXP REPLACE(@name, ',', '|')
;

 


by 파니동 [2019.01.28 19:55:21]

답변 감사합니다. 다른 케이스들도 친절히 알려주셔서 더 이해가 되네요 !

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입