以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  上万行的高效查找  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=154348)

--  作者:tld
--  发布时间:2020/9/12 6:09:00
--  上万行的高效查找
老师好,后台有上万条记录,在字段 【列1】中查找是否包含字符串“A”,用什么代码高效?

谢谢老师!!!

--  作者:有点蓝
--  发布时间:2020/9/12 9:08:00
--  
参考:http://www.foxtable.com/webhelp/topics/0396.htm



--  作者:tld
--  发布时间:2020/9/12 11:18:00
--  
老师好。在后台中,对字段【列1】进行查找,判断是否有记录  “包含“  字符串 “A” ,我目前知道三种方法:

1:对datatable 用 SQLselect ,对集合逐行 for   each   next,对每行的列1 进行IndexOf ;
2:用SQLGetComboListString ,然后用IndexOf ,(字符长度会非常大,是否对长度有限制)
3:用 SQLgetvalue  然后用  for   each   next,对每个成员进行IndexOf判断。

      数据量少的时候无所谓,但以后数据量会很大,希望找到更高效的方法。上述方法哪个更高效些?是否有更高效的方法?用SQLGetComboListString 对字符串的长度有没有限制?
请老师帮忙指点。谢谢!

--  作者:有点蓝
--  发布时间:2020/9/12 11:28:00
--  
直接使用like查询,完全没有必要什么for   each、IndexOf 的:http://www.foxtable.com/webhelp/topics/0102.htm

Dim drs As List(of DataRow)  = DataTables("订单").SQLSelect(" 列1 like \'%A%\'")

SQLGetComboListString 和SQLgetvalue  也一样

--  作者:tld
--  发布时间:2020/9/12 21:27:00
--  
谢谢