my sql此修改语句如何写成存储过程

my sql此修改语句如何写成存储过程

此修改语句,写成存储过程,sf_fumian_tag_20230113这个表会按每日更新,所以后缀20230113是变量。

UPDATE sf_fumian_tag_20230113
SET states = '1'
WHERE
url in
(select a.url from (select url from sf_fumian_tag_20230113
GROUP BY url HAVING COUNT(url)>4) a)

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
DELIMITER $$
CREATE PROCEDURE update_table(IN table_suffix VARCHAR(20))
BEGIN
SET @sql = CONCAT('UPDATE sf_fumian_tag_', table_suffix, ' SET states = ''1'' WHERE url in (select a.url from (select url from sf_fumian_tag_', table_suffix, ' GROUP BY url HAVING COUNT(url)>4) a)');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;