SQL语句中,如何同时模糊查询多个字符串
在VB+Acess中,我有一个比较大的表,字段为(姓名,性别,手机号,QQ),有几千行,想同时查找出100个姓的记录来。查询语句:select*fromNamewhere...
在VB+Acess中,我有一个比较大的表,字段为(姓名,性别,手机号,QQ),有几千行,想同时查找出100个姓的记录来。查询语句:select * from Name where 姓名like '张%' union select * from Name where 姓名like '李%'。。。。。。但运行后显示说“查询太复杂”。如果把union减少到40个,那么可以正常运行,到那增加到50个时就无法运行了。如何解决?有木有高手帮个忙
展开
3个回答
展开全部
把这些姓插入到一个新表中
比如 表:A
name
张
李
。。。
select 姓名.* from 姓名,A where 姓名.name like A.name + '%'
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Select * from Name where 姓名 like '[张李赵钱孙]%'
追问
这个我也想过,可是有很多姓不是一个字,比如欧阳、甚至像蒙古等的更长,字符串如何用[]来表达呢
追答
那最少也可以写成:
Select * from Name where 姓名 like '[张李赵钱孙]%' or or left(姓名,2) In ('欧阳','蒙古') or left(姓名,3) in ('阿伏干','拔列兰')
而没必要用union
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看下面的方法,是否能帮到你:
select * from Name where substr(姓名,1,1) in ('李','张','刘');
select * from Name where substr(姓名,1,1) in ('李','张','刘');
追问
这个我也想过,可是有很多姓不是一个字,比如欧阳、甚至像蒙古等的更长,字符串如何用[]来表达呢
追答
姓1个字的,姓2个字的,姓3个字。。。,应该不会超过5个吧,然后union
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询