DROP PROCEDURE IF EXISTS .`sp_XXX`$$CREATE PROCEDURE `sp_XXX`(sText VARCHAR(50))
    BEGIN
SELECT * FROM TABLE1 WHERE ID IN (sText);
    END$$DELIMITER ;
请问调用 SP_XXX()应如何传参,如:'1','2'应该如何传入SP_XXX(),我试过"'1','2,"没有返来数据,但一个就可以'1'
谢谢

解决方案 »

  1.   

    set @ee1=concat('SELECT * FROM TABLE1 WHERE ID IN (',sText,')');
    prepare dd from @ee1;
    execute dd;
      

  2.   


    除了这种方式还有其他办法吗?因为我的select 语句比较长,改起来很痛苦
      

  3.   

    改成这个SELECT * FROM TABLE1 FIND_IN_SET(ID,sText);
      

  4.   

    以上方式都可以,但要注意你传入的参数形式,若是动态语句形式,则传入的参数为 '''1'',''2''';若是用find_in_set,则用'1,2'即可另:楼上的语句漏了where