mysql 存储函数返回值为逗号间隔字符串代替数组方案

假设 存储函数return返回值如 “12,13,16,17,22”逗号隔开
要用于select查询中的in条件,那么大家知道in有上限,直接用in是会出错的。
可以用以下办法处理
SELECT * FROM User WHERE FIND_IN_SET(id," 12,13,16,17,22 ")
使用存储函数为
SELECT * FROM User WHERE FIND_IN_SET(id,调用存储函数查注册会员('today'))
这会缓慢,每次执行find_in_set都会执行一次
我们改成下面这种临时表缓存办法加速
SELECT * FROM User (SELECT 调用存储函数查注册会员('0') cacheid) t WHERE FIND_IN_SET(id,cacheid)

题外,其它方法,如果要返回集合你可以
调用存储函数查注册会员 (0) 过程里分割字符串 返回 function
我还没测试,有空试试。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注