MYSQL:存储过程未正确执行带有 'IN' 子句的查询

MYSQL: stored procedure not executing query correctly with 'IN' clause correctly

我正在尝试将字符串值从我的代码传递到存储过程,但它没有正确执行查询。下面是存储过程的代码。

我想将多个值传递给存储过程,例如“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

您必须使用 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