标题:SELECT 中模糊查询
只看楼主
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
结帖率:98.96%
已结贴  问题点数:20 回复次数:9 
SELECT 中模糊查询
a1="1234.abcd.asw"
查字段包含A1的,是这样
select * from 表1 where 字段 like '%'+a1+'%'
那么?查字段给A1包含,怎么查???
a1的各个值与“.”分隔的。
比如结果,字段=1234,或字段=abcd,或字段=asw,

[此贴子已经被作者于2015-10-16 17:31编辑过]

2015-10-16 17:27
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
用INLIST()可以吗?
2015-10-16 19:19
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:352
专家分:1152
注 册:2015-10-2
得分:5 
locate for at('1234',字段)>0 or at(' abcd',字段)>0 or  at('asw',字段)>0 试试如何。
2015-10-16 19:32
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
得分:5 
我还不懂'%'+a1+'%'中的两个'%'是什么意思和用处.....%不是除号来的嘛

不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2015-10-16 20:25
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用中国龙王在2015-10-16 20:25:03的发言:

我还不懂'%'+a1+'%'中的两个'%'是什么意思和用处.....%不是除号来的嘛
SELECT-SQL命令中:“%”是通配符,可以匹配任意数量的任何字符,它的作用相当于文件名中的“*”。
2015-10-21 14:33
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
得分:0 
专门查了一下.说单机版的不用加'%'..那东西是给网络版的......我说我以前怎么没用上过

不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2015-10-21 20:21
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用中国龙王在2015-10-21 20:21:38的发言:

专门查了一下.说单机版的不用加'%'..那东西是给网络版的......我说我以前怎么没用上过

你在哪查的资料啊?没听说过通配符是专门给网络版用的。事实上,VFP在大多数人手里都是只用在单机查询情况下的。你要是想查询代码是“135”开头的,不就得用到这个通配符吗?难道还不让用了咋滴?
2015-10-22 08:23
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
%是用在模糊查询方面的,多数是用在SELECT查询用关键字LIKE。
比如:
*在表1中的字段XM,查询,姓是张的,因为中国的姓是在首位,所以

cXM='张'
SELECT * FROM 表1 WHERE XM LIKE cXM+'%'

*查询名称最后一位是张字的
cXM='张'
SELECT * FROM 表1 WHERE XM LIKE '%'+cXM

*查询名称带张字的
cXM='张'
SELECT * FROM 表1 WHERE XM LIKE '%'+cXM+'%'

[此贴子已经被作者于2015-10-22 13:47编辑过]

2015-10-22 09:49
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:161
注 册:2009-8-20
得分:0 
以下是引用mywisdom88在2015-10-22 09:49:36的发言:

%是用在模糊查询方面的,多数是用在SELECT查询用关键字LIKE。
比如:
*在表1中的字段XM,查询,姓是张的,因为中国的姓是在首位,所以
cXM='张'
SELECT * FROM 表1 WHERE XM LIKE '%'+cXM

*查询名称最后一位是张字的
cXM='张'
SELECT * FROM 表1 WHERE XM LIKE cXM+'%'

*查询名称带张字的
cXM='张'
SELECT * FROM 表1 WHERE XM LIKE '%'+cXM+'%'

楼上这位前两句是不是弄反了????????????????
2015-10-22 13:34
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
是哦,前面2句写反了。。。
2015-10-22 13:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-458248-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.884015 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved