Foxtable(狐表)用户栏目专家坐堂 → [求助]SQLGetComboListString提取值的求助


  共有2562人关注过本帖树形打印复制链接

主题:[求助]SQLGetComboListString提取值的求助

帅哥哟,离线,有人找我吗?
huangfanzi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]SQLGetComboListString提取值的求助  发帖心情 Post By:2015/6/9 9:48:00 [只看该作者]

假定后台角色表的结构与内容如下:
角色名    姓名
A角色    姓名A,姓名B
B角色    姓名A,姓名C,姓名D
现在要提取角色A的姓名做个SQLGetComboListString,我目前只会写如下代码:
DataTables("角色表").SQLGetComboListString("姓名","[角色名] = 'A角色'")
由于SQLGetComboListString的分隔是用“|”,我上面的代码应该如何改,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/9 9:49:00 [只看该作者]

 

[此贴子已经被作者于2015/6/9 9:49:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/9 9:51:00 [只看该作者]

DataTables("角色表").SQLGetComboListString("姓名","[角色名] = 'A角色'").Replace(",", "|")

 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/6/9 9:55:00 [只看该作者]

上面的写法看懂了,但还有一种情况按上面的写法会提取到重复值,这种情况是:

DataTables("角色表").SQLGetComboListString("姓名","[角色名] = 'A角色'" or "[角色名] = 'B角色'").Replace(",", "|")
另外请问下,SQL中的 or 是不是像我上面这样用的。
[此贴子已经被作者于2015/6/9 9:57:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/9 10:00:00 [只看该作者]

这代码也不应该出现重复值啊.

另外你条件搞错了 标点符号不对 
DataTables("角色表").SQLGetComboListString("姓名","[角色名] = 'A角色'  or  [角色名] = 'B角色'").Replace(",", "|")

 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/6/9 10:06:00 [只看该作者]

由于A角色中存在用户A,B角色中也存在用户A,执行完SQLGetComboListString后的结果是:姓名A,姓名B | 姓名A,姓名C,姓名D,再通过Replace(",", "|")成为  姓名A|姓名B|姓名A|姓名C|姓名D,是不是会这样,请赐教!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/9 10:07:00 [只看该作者]

Dim str As String = "|"
For Each xms As String In DataTables("角色表").GetValues("姓名", "角色名 = 'A' or 角色名 = 'B'")
    Dim ary() As String = xms.Split(",")
    For Each xm As String In xms
        If str.Contains("|" & xm & "|") = False Then
            str &= xm & "|"
        End If
    Next
Next
msgbox(str.Trim("|"))

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/9 10:29:00 [只看该作者]

Dim str As String = "|"
For Each xms As String In DataTables("角色表").SQLGetValues("姓名", "角色名 = 'A' or 角色名 = 'B'")
    For Each xm As String In xms.Split(",")
        If str.Contains("|" & xm & "|") = False Then
            str &= xm & "|"
        End If
    Next
Next
msgbox(str.Trim("|"))

 回到顶部