【问题标题】:MYSQL: stored procedure not executing query correctly with 'IN' clause correctlyMYSQL:存储过程未正确使用“IN”子句正确执行查询
【发布时间】:2015-01-16 10:22:10
【问题描述】:

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

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

【问题讨论】:

    标签: mysql sql select stored-procedures in-operator


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2015-04-17
      相关资源
      最近更新 更多