Foxtable(狐表)用户栏目专家坐堂 → 代码太长 怎么优化like代码?


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

主题:代码太长 怎么优化like代码?

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


加好友 发短信
等级:五尾狐 帖子:1135 积分:11099 威望:0 精华:2 注册:2008/9/1 10:45:00
代码太长 怎么优化like代码?  发帖心情 Post By:2023/5/3 11:49:00 [只看该作者]

DataTables("专业").LoadFilter = "专业名称 like '%哲学%' or 专业名称 like '%逻辑学%' or 专业名称 like '%宗教学%' or 专业名称 like '%伦理学%' or 专业名称 like '%经济学类%' or 专业名称 like '%经济学%' or 专业名称 like '%经济统计学%' or 专业名称 like '%国民经济管理%' or 专业名称 like '%资源与环境经济学%'"
DataTables("专业平均").Load

这段代码是在专业表中查询专业名称中包含的多个关键词,最多的关键词有800个.会出错,提示代码太长,有什么办法优化一下代码吗?
能否用IN:DataTables("专业").LoadFilter = "专业名称 in ('%哲学%','%逻辑学%')"
in中能否用通配符?谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/3 14:04:00 [只看该作者]

in不支持通配符

建一个字典表,存储哲学、逻辑学、...这些内容,然后使用sql查询,比如

select a.* from 专业 as a inner join 字典表 as b on a.专业名称 like '%' + b.第一列 + '%'

如果使用LoadFilter 可以这样
DataTables("专业").LoadFilter = "exists (select 第一列 from 字典表 as b where 专业.专业名称 like '%' + b.第一列 + '%')

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


加好友 发短信
等级:五尾狐 帖子:1135 积分:11099 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2023/5/3 15:21:00 [只看该作者]

多谢蓝版,我试试!

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


加好友 发短信
等级:五尾狐 帖子:1135 积分:11099 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2023/5/4 14:49:00 [只看该作者]

字典不支持临时表?

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/4 14:52:00 [只看该作者]

不支持

 回到顶部