database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31254 게시물 읽기
No. 31254
프로시저 파라미터 입력 방법 (in사용시)
작성자
김달풍(enco)
작성일
2019-08-02 16:25
조회수
1,955

소중한 시간내어주셔서 먼저 감사드립니다. 

 

 프로시저로 파라미터를 넘겨서 조회가 되도록 하려고 합니다. 

select * from AAA

where aaa in (---이부분에 파라미터-----)

이런식으로 작성하려고 하는데 'a','b','c',... 처럼 여러개를 한꺼번에 조회하려고 할때는 어떻게 해야할지 모르겠습니다. 

혹시 경험이 있으시거나 조언을 해주실 수 있을까요?

 

이 글에 대한 댓글이 총 2건 있습니다.

문자열을 구분자로 나누는 함수가 있거나 하면 되겠는데..

mysql에는 그런 용도의 내장된 함수는 없는 것 같습니다.

substr이나 instr 등의 함수를 활용한 사용자 함수를 만들어서 쓰거나 프로그램 처리해야 할듯 합니다.

정상규(pajama)님이 2019-08-02 16:41에 작성한 댓글입니다.
이 댓글은 2019-08-02 16:41에 마지막으로 수정되었습니다.
with recursive
    T as ( select 'a,b,c,d,e,f' as items),
    N as ( select 1 as n union select n + 1 from N, T
        where n <= length(items) - length(replace(items, ',', '')))
select substring_index(substring_index(items, ',', n), ',', -1)
parameters from N, T

.위와 같이 파라메터 문자열을 row로 바꿔 JOIN으로 풀거나

 아래 같이 IN절로 사용하면 될거예요.

with recursive
    T as ( select 'a,b,c,d,e,f' as items),
    N as ( select 1 as n union select n + 1 from N, T
        where n <= length(items) - length(replace(items, ',', '')))

select * from AAA where aaa IN (select substring_index(substring_index(items, ',', n), ',', -1)  
from N, T)
박인호(paerae)님이 2019-08-05 10:30에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31257쿼리 처리 순서 질문입니다. [1]
원재호
2019-08-16
2105
31256트리거 쿼리 하루종일 오류 나는데 1064 오류 확인좀 부탁드립니다 ㅠ [1]
hi
2019-08-13
2024
31255특정 테이블에 쿼리문 사용시 데이터베이스명을 명시해줘야 하는 현상 [2]
mattqnrp
2019-08-12
2136
31254프로시저 파라미터 입력 방법 (in사용시) [2]
김달풍
2019-08-02
1955
31253phpmyadmin 가져오기 구문 오류 문제 입니다
공부중
2019-07-26
2031
31251모델링 질문 [3]
jhj
2019-07-21
1999
31250다중 데이터베이스를 사용할떄 갯수의 제한이 있을까요? [1]
hhje22
2019-07-09
1967
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다