回答

收藏

存储过程参数SQL使用“泪N”语句

技术问答 技术问答 180 人阅读 | 0 人回复 | 2023-09-13

我有一个叫 @IDs输入参数的存储过程。这是从我的应用程序中填写的,应用程序填写以下格式:. B: d- Y% z1 Q
2、30、105。当然,这个参数中的值的数量会有所不同(例如:有时@ID有时为‘100,2005,2,510’)我的存储过程非常简单。我有一张名为人的手表。我试着写这个查询:
, C) e2 t+ m$ c0 Q/ k  ?" HSelect * From Persons Where P_Id in (@IDs)P_ID是我表中的主键。我得到的错误是将varchar将数据类型转换为 2、3、4int时间转换失败。 任何建议都将不胜感激。  m- ^$ d$ b0 K$ S* |( O
                                                                : C6 c0 l5 a- p. |* U( i
    解决方案:                                                               
, I6 z- k; @! x( E- D( L                                                                你可能需要准备一份声明。这个想法是建立一个选择句子,然后执行它。这是如何做例子…
/ v, Q$ M5 T( qUSE mydb;DROP PROCEDURE IF EXISTS execSql;DELIMITER //CREATE PROCEDURE execSql              IN sqlq VARCHAR           COMMENT 'Executes the statement'BEGIN  SET @sqlv=concat(concat('select abc from yourtable where abc in (',sqll),); PREPARE stmt FROM @sqlv;  EXECUTE stmt;  DEALLOCATE PREPARE stmt;END //DELIMITER ;只需将查询更改为您想要执行的查询。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则