Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何判断某字段中是否包含某个字符?

Ronaldinho  发表于:2018-01-03 11:24:25  
复制

Access中,假设我有个数据库AAA,里边Name列是客户的姓名,现在我想从中挑选出所有姓名包含“赵”或“钱”或“孙”或“李”的客户,最简单的方式是什么?

请好心人帮忙指导,谢谢! 

 

Top
陈钰友 发表于:2018-01-03 15:01:49
用SQL语句:select name from AAA where name like '%赵%'

Ronaldinho 发表于:2018-01-03 16:01:25

谢谢二楼兄弟的回答,实际上我这个问题是可以这样解决的,但我如果我要找的是百家姓所有形式,那么多的“or”组合而成的SQL语句实际上不是我想要的。。。维护起来成本也太高了。。

实际上我提这个问题,也是希望判断某个值是否包含很多关键字中的某一个,这样的话有什么好的方法吗?



西出阳关无故人 发表于:2018-01-03 16:26:28

编一个自定义函数或过程,输入你想要的“赵钱孙李...”作为参数,获得所需要的where句子:

where name like '赵*' or  name like '钱*'  ...

然后...

或者,你做一个姓氏表(id,姓氏),然后:

select name from AAA where mid(name,1,1) IN(SELECT 姓氏 from 姓氏表)



Ronaldinho 发表于:2018-01-11 09:58:42
三楼的第二种方法貌似可行,不过我遇到的实际问题其实没有姓氏这么简单,我的数据库中有个字段,都是文字,比如“联想”、“联想电脑”、“中关村联想旗舰店”等等这种形式,现在我需要找出的是字段中包含“联想”这两个字的所有条目,当然了,关键字不止是联想,还有另外几十个,这样的话,因为“联想”这个关键字不见得出现在什么位置,所以就不太适用于mid 函数的使用了,怎么办呢

蒋元根 发表于:2018-01-11 10:32:30
请学习参考
张志老师的在多个字段中模糊查询。

http://www.accessoft.com/article-show.asp?id=2457


点击下载此附件



Ronaldinho 发表于:2018-01-11 11:24:03
谢谢5楼,我的情况其实是在一个字段中确认多个关键字是否存在

西出阳关无故人 发表于:2018-01-11 11:31:27
点击下载此附件

另一种方法,

1、先做一个自定义函数如下:

Public Function LikeIn(ByVal STR As String, CHR As String) As Boolean

'STR:接受搜索的字符串,CHR    :要查找的字符串,不同关键字之间用英文分号分隔,例如想从中挑选出所有姓名包含“赵”或“钱”或“孙”或“李”的客户,则chr=“赵;钱;孙;李”
    Dim  j As Long
    Dim ary
    ary =Split(CHR, ";")
    LikeIn = False
    For j = 0 To UBound(ary)
        If Len(ary(j)) > 0 And  InStr(STR, ary(j)) > 0 Then
            LikeIn = True
            Exit Function
        End If
    Next j
End Function
2、再创建查询如下:

select * from 表名称 where LikeIn(某字段名称,“赵;钱;孙;李”)=TRUE

3、运行查询

附件备注:由于我的电脑无法正常运行split、instr等函数,就自定义了类似的函数mysplit、myinstr代替。



朱先生 发表于:2018-01-11 14:22:10

不是局限于赵、钱、孙、李吧

也不会是一次寻找这么多吧




Ronaldinho 发表于:2018-01-11 14:56:31
7楼的方法太腻害啦!!!完美成功!!!

总记录:9篇  页次:1/1 9 1 :