2015-01-16 100 views
1

我試圖從我的代碼傳遞一個字符串值到存儲過程,但它沒有正確執行查詢。以下是存儲過程的代碼。MYSQL:存儲過程不能正確地用'IN'子句正確執行查詢

我想將多個值傳遞給像'2,3,4'這樣的存儲過程。但是,當我這樣做只需要2並且引發錯誤。

CREATE PROCEDURE `USP_INSERT_PROCESSED_ETC_RECORDS_TO_MAIN_TABLE` 
(
    IN RECORD_ID VARCHAR(20) 
) 
BEGIN 
    SELECT * FROM TX_TOLL_TRANSACTION_RECORD_DETAIL_STAGING 
    WHERE ID IN (RECORD_ID); 
END 

回答

0

你必須使用FIND_IN_SET()功能而不是運營商

的試試這個:

CREATE PROCEDURE `USP_INSERT_PROCESSED_ETC_RECORDS_TO_MAIN_TABLE` 
(
    IN RECORD_ID VARCHAR(20) 
) 
BEGIN 
    SELECT * FROM TX_TOLL_TRANSACTION_RECORD_DETAIL_STAGING 
    WHERE FIND_IN_SET(ID, RECORD_ID); 
END 
+0

它的工作。謝謝! – sandeep