2015-01-16 1 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() функцию вместо IN оператора

Попробуйте это:

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