mysql存储过程参数处理问题

aierduo aierduo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
表结构如下:
DROP TABLE IF EXISTS `testtb`;
CREATE TABLE `testtb` (
`id` int(11) NOT NULL auto_increment,
`amount` decimal(10,0) default NULL,
`tag` varchar(50) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of testtb
-- ----------------------------
INSERT INTO `testtb` VALUES ('1', '11', 'a b');
INSERT INTO `testtb` VALUES ('2', '22', 'c d');
INSERT INTO `testtb` VALUES ('3', '32', 'a d');
INSERT INTO `testtb` VALUES ('4', '43', 'a b');

我想建类似于下面的一个存储过程


DELIMITER $$

DROP PROCEDURE IF EXISTS `testDT`$$

CREATE PROCEDURE `testDT`(IN num VARCHAR(100)) -- num 的格式类似于 a b@c d@a d
BEGIN
SELECT SUM(amount) AS ttt FROM testtb
WHERE tag IN('a b','c d')
GROUP BY tag;

END$$

DELIMITER ;

其中 WHERE tag IN ('a b','c d')这个IN 参数是从num计算出来的。
我使用REPLACE(num,'@','\',\''),'\'')放到IN里面,得到的结果是错误的。
请问应该怎么做才是对的?
...全文

相关推荐

MySQL存储过程的异常处理方法

通过这样的异常处理机制,存储过程可以更优雅地处理错误,而不是让整个程序崩溃,同时提供了有关问题的详细信息,方便调试和修复。这使得MySQL存储过程在处理复杂业务逻辑时具有更高的可靠性。

weixin_38692162

MySQL必知必会01_使用存储过程

1.什么是存储过程 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。 2.优劣 优势 (1)通过把处理封装在容易使用的单元中,简化复杂的操作 由于不要求反复建立一系列处理步骤,这保证了数据的完整性。 如果所有开发人员和应用程序都使用同一(试验和测试)存储过程,则所使用的代码都是相同的。这一点的延伸就是防止错误。需要执行的步骤越多,出错的可能性就越大。防止错误保证了数据的...

清平乐的技术博客

MySQL存储过程编程.pdf

* 数据处理:存储过程可以用来实现数据处理操作。* 报表生成:存储过程可以用来生成报表。 MySQL 存储过程编程的开发步骤:1. 定义存储过程:定义存储过程的名称、参数和返回值。2.

小鸭文库

MYSQL存储过程详解

#### 错误处理(Error Handling)MySQL提供了强大的错误处理机制,可以通过定义错误处理器来捕获和处理存储过程中发生的异常情况。

jct418

mysql 动态执行存储过程语句

总的来说,理解并熟练掌握MySQL中的动态执行存储过程语句,能够极大地提高开发效率和数据库操作的灵活性,但同时也要注意安全问题,避免潜在的风险。

weixin_38663029
评论 2
收藏 已收藏
分享
返回顶部
aierduo
MySQL 57,062 成员 56,759 内容