본문 바로가기
MySql

MySQL 저장 프로 시저에서 문자열 목록을 전달하는 방법은 무엇입니까?

by 베이스 공부 2021. 1. 4.
반응형

MySQL 저장 프로 시저에서 배열을 문자열로 전달하려고하는데 제대로 작동하지 않습니다.

내 SQL 코드는 다음과 같습니다.

CREATE DEFINER=`root`@`localhost` PROCEDURE `search_equipment`(IN equip VARCHAR(100), IN category VARCHAR(255))
BEGIN
    SELECT *
        FROM Equipment
        WHERE e_description
        LIKE CONCAT("%",equip,"%")
            AND e_type IN (category)
END

절차를 호출하는 방법은 다음과 같습니다.

String type = "'I.T. Equipment','Office Supply'";

CALL search_equipment('some equipment', type);

어떤 아이디어?

 

해결 방법

 



그래서 당신의 절차는

CREATE DEFINER=`root`@`localhost` 
PROCEDURE `search_equipment`(
    IN equip VARCHAR(100), 
    IN category VARCHAR(255)
)
BEGIN
    SELECT *
    FROM Equipment
    WHERE e_description LIKE CONCAT("%",equip,"%")
    AND FIND_IN_SET(e_type,category)
END

이것은 카테고리 문자열이 쉼표로 구분 된 목록에 의존하므로 호출 코드는

String type = "I.T. Equipment,Office Supply";

CALL search_equipment('some equipment', type);

(p.s. 유형 범주가있는 인수에서 오타 수정)

 

참조 페이지 https://stackoverflow.com/questions/16103058

 

 

반응형

댓글