回答

收藏

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

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

我有一个叫 @IDs输入参数的存储过程。这是从我的应用程序中填写的,应用程序填写以下格式:
! h6 ~. w) ~" `0 ~5 \2、30、105。当然,这个参数中的值的数量会有所不同(例如:有时@ID有时为‘100,2005,2,510’)我的存储过程非常简单。我有一张名为人的手表。我试着写这个查询:$ I+ A$ {: x3 o3 _; a- f
Select * From Persons Where P_Id in (@IDs)P_ID是我表中的主键。我得到的错误是将varchar将数据类型转换为 2、3、4int时间转换失败。 任何建议都将不胜感激。
! t! L6 b! o- o, U8 x! R, U; _1 q                                                               
+ O( v; i3 M: i. L& X    解决方案:                                                                9 k4 p4 E6 F; y6 X$ g
                                                                你可能需要准备一份声明。这个想法是建立一个选择句子,然后执行它。这是如何做例子…
+ R& B" X+ x, ~% |USE 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 ;只需将查询更改为您想要执行的查询。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则