以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  sqlselect 的 in (xxx,xxxx)语句有无模糊查找的办法?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189726)

--  作者:lur320
--  发布时间:2023/12/21 9:39:00
--  sqlselect 的 in (xxx,xxxx)语句有无模糊查找的办法?
 如下一个只有1列的表:
abc-01
abc-02
bcd-01
bcd-02
efg-01

现在用户选中了abc和bcd两个产品系列。得到字符串 ‘abc’,‘bcd’

有没有什么办法简单实现:
datatables(xxx).sqlselect(xxxx,xxxx in ( ‘abc’,‘bcd’) )。 从而得下面到4行?IN 和 Like有模糊查找的办法吗?
abc-01
abc-02
bcd-01
bcd-02



--  作者:lur320
--  发布时间:2023/12/21 9:41:00
--  
 我想到的就历遍字符串,然后用sqlslect 的like判断。然后逐一添加到一个新的list(of datarow)里面。想问的就是有没有简单写法?

--  作者:有点蓝
--  发布时间:2023/12/21 9:47:00
--  
http://www.foxtable.com/webhelp/topics/0688.htm,看like的用法

datatables(xxx).sqlselect("第一列 like ‘abc%’ or 第一列 like  ‘bcd%’" )

--  作者:lur320
--  发布时间:2023/12/21 10:10:00
--  
Dim namelist As String = e.Form.Controls("CheckedComboBox1").Value
Dim namlist() As String
namlist = namelist.Split(",")
Dim cc As String
For Each aa As String In namlist
    cc &= "产品 like \'%" & aa & "%\' or "
Next
cc = cc.trim(" ", "r", "o")

Dim combolis As String = DataTables(”数据").SQLGetComboListString("产品", cc)

这样应该可以
[此贴子已经被作者于2023/12/21 10:10:21编辑过]

--  作者:有点蓝
--  发布时间:2023/12/21 10:21:00
--  
Dim namelist As String = e.Form.Controls("CheckedComboBox1").Value
Dim cc As String = "产品 like \'%" & namelist .Replace(",", "%\' or 产品 like \'%") & "%\'"
msgbox(cc )
Dim combolis As String = DataTables(”数据").SQLGetComboListString("产品", cc )