본문 바로가기
프로그램개발/DB(MySQL,MariaDB,MongoDB)

연속데이타 가져오기

by 크레도스 2017. 3. 29.

출처: http://database.sarang.net/?inc=read&aid=31038&criteria=mysql&subcrit=qna&id=&limit=20&keyword=&page=1



-- tbl ------

b

-------------

10

30

50

15

13 -->

12

55

100

123

30

50

15

101 -->

...

--------------

 

결과테이블

--------------

b

--------------

13

101

--------------

안녕하세요.

혼자 해결하기에 어려움이 있어 한수 가르침을 받고자 질문 드립니다.

 

제가 입력값이 예를들어 30,50,15일때

query문을 통해 b값을 찾으려고 합니다.

입력값이 수시로 변할때

퀴리문을 어떻게 해야 할지 부탁드립니다.


=>답변


문제 해결을 위해서는 정렬기준이 필요합니다.
idx 컬럼으로 정렬한다고 가정하고 작성했습니다.


SELECT idx, b
  FROM (SELECT idx, b
             , CASE WHEN @x LIKE '%,30,50,15' THEN 1 ELSE 0 END flag
             , @x := CONCAT(@x, ',', b)
          FROM (SELECT idx, b FROM test ORDER BY idx) a
             , (SELECT @x := '') b
        ) c
 WHERE flag = 1
;