以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于字符串内重复字段问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146982)

--  作者:aidimeng
--  发布时间:2020/3/7 9:28:00
--  关于字符串内重复字段问题

通过递归函数合成一段字符 如下

\'B5#20190628\',\'B5#20190628\',\'B5#20190628\',\'B5#20190628\',\'B5#20190628\',\'HB5#20190628\',\'B5#20190702\',

\'HB5#20190628\',\'B5#20190702\',\'HB5#20190701\',\'B5#20190704\',\'HB5#20190701\',\'B5#20190704\',\'B5#20190705\',\'

B5#20190706\',\'B5#20190705\',\'B5#20190706\',\'B5#20190708\',\'B5#20190721\',\'B5#20190708\',\'B5#20190721\',\'B5#20190722\',\'B5#20190726\',\'

B5#20190722\',\'B5#20190726\',\'B5#20190730\',\'B5#20190821\',\'B5#20190730\',\'B5#20190821\',\'B5#20190822\',\'B5#20190823\',\'B5#20190822\',\'

B5#20190823\',\'B5#20190825\',\'B5#20190830\',\'B5#20190825\',\'B5#20190830\',\'HB5#20190830\',\'B5#20190901\',\'HB5#20190830\',\'B5#20190901\',\'

B5#20190903\',\'B5#20191010\',\'B5#20190903\',\'B5#20191010\',\'HB5#20191010\',\'B5#20191012\',\'HB5#20191010\',\'B5#20191012\',\'B5#20191013\',\'

B5#20191017\',\'B5#20191013\',\'B5#20191017\',\'B5#20191018\',\'B5#20191022\',\'B5#20191018\',\'B5#20191022\',\'B5#20191024\',\'B5#20191027\',\'

B5#20191024\',\'B5#20191027\',\'B5#20191030\',\'B5#20191112\',\'B5#20191030\',\'B5#20191112\',\'HB5#20191112\',\'B5#20191113\',\'HB5#20191112\',\'

B5#20191113\',\'B5#20191114\',\'B5#20191117\',\'B5#20191114\',\'B5#20191117\',

 

发现有很多是重复的,在后面的程序中会用 sql 语句  where 字段 in () 上面的字符串。导致运行速度很慢,

 

这里我能怎么优化后 在执行 sql 比较好呢


--  作者:有点蓝
--  发布时间:2020/3/7 9:58:00
--  
in本身就慢,属于全表扫描,基本用不上索引,和重复没有多大关系。看能不能改为inner join之类的关联查询
--  作者:有点蓝
--  发布时间:2020/3/7 10:00:00
--  
如果要去重,递归的时候先添加到集合里,使用集合判断去重,最后再合并字符。
--  作者:aidimeng
--  发布时间:2020/3/7 10:31:00
--  
谢谢 我试试