56,874
社区成员




mysql> DELIMITER /
mysql>
mysql> DROP PROCEDURE IF EXISTS `testDT`/
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> CREATE PROCEDURE `testDT`(IN num VARCHAR(100)) -- num 的格式类似于 a b@c
d@a d
-> BEGIN
-> declare str varchar(200);
-> set @sql = concat('SELECT SUM(amount) AS ttt FROM testtb WHERE tag IN(','
\'',replace(num,'@','\',\''),'\') GROUP BY tag');
-> prepare str from @sql;
-> execute str;
-> deallocate prepare str;
-> END/
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> DELIMITER ;
mysql>
mysql> call testDT('a b@c d@a d');
+------+
| ttt |
+------+
| 54 |
| 32 |
| 22 |
+------+
3 rows in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)