MySQL FIND_IN_SET

-- MySQL 2015. 3. 2. 08:46
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MySQL 프로시저에서 입력값이 1,2,3인 경우 아래처럼 쿼리를 만들고 싶을 때 FIND_IN_SET을 이용하면 유용하다.


SELECT SEQ_NO
FROM    TEST
WHERE   SEQ_NO IN (1,2,3);

입력받은 파라미터가 a라고 한다면  (a = 1,2,3)

SELECT SEQ_NO
FROM    TEST
WHERE   FIND_IN_SET (SEQ_NO, a)

해주면 위 쿼리처럼 변환된다.


추가) 2017-08-01

만약 A테이블의 keyword라는 필드가 1,2,3 과 같이 comma로 이루어졌다고 하면,
1이라는 값이 keyword필드에 속한 것인지 확인하고 싶을 때가 있다.

이때 두가지 방법이 있다.

[1]

SELECT *
FROM A
WHERE FIND_IN_SET(1keyword) > 0

[2]

SELECT *
FROM A
WHERE keyword REGEXP CONCAT('(^|,)(', REPLACE(1, ',', '|'), ')(,|$)')


posted by 어린왕자악꿍