标题:select * from 表 where 字段 in (........)的问题
只看楼主
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
结帖率:96.55%
已结贴  问题点数:16 回复次数:8 
select * from 表 where 字段 in (........)的问题
招生计划表中有一列是专业名称。我在文本框中输入多个专业名称,分别赋值给zy1、zy2、zy3。。。。,然后从表中的专业名称列中找出所有包含zy1或zy2或zy3的行。比如我输入的是“医学”,专业名称中所有包含“医学”两字的都要能选出来,如临床医学、医学美容等。我的语句是:
SELECT * FROM zsjh WHERE Zymc in ("&zy1","&zy2","&zy3","&zy4","&zy5")
可是,运行结果出现了这样的情况:它只找到了医学美容,没找到临床医学。输入“金融”,找到的全部是金融开头的专业,“国际金融”之类的找不到。
请问:是什么原因,如何解决?谢谢!
搜索更多相关主题的帖子: select from where 专业 名称 
2019-05-15 21:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:8 
where "医学"$Zymc

坚守VFP最后的阵地
2019-05-15 22:09
yafengliang
Rank: 2
等 级:论坛游民
帖 子:111
专家分:35
注 册:2016-2-21
得分:8 
回复 楼主 zhousr
要采用模糊查询
2019-05-15 22:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
或者
where Zymc like "%医学%"

坚守VFP最后的阵地
2019-05-15 22:14
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
得分:0 
谢谢!
用where zymc like "%&zy1.%" OR zymc like "%&zy2.%" OR zymc like "%&zy3.%",结果它给出了所有的记录,整张表的内容。
2019-05-15 22:40
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
得分:0 

取输入的专业名:
IF LEN(ALLTRIM(thisform.text1.value))>0  &&专业
zy1=ALLTRIM(thisform.text1.value)
ELSE
zy1="不限"
ENDIF
所有专业名称中都不会有“不限”两字。
2019-05-15 22:43
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
where zymc like "%" + zy1 + "%" OR zymc like "%" + zy2 + "%" OR zymc like "%" + zy3 + "%"

zy1
zy2
zy3
中必须没有空格才行

用下面的代码会更简单
where zy1$zymc or zy2$zymc or zy3$zymc

坚守VFP最后的阵地
2019-05-15 22:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
如果输入专业的文本框是固定的,不需要判断是否为空,可以这样
zy1 = alltrim(thisform.text1.value)
zy2 = alltrim(thisform.text2.value)
zy3 = alltrim(thisform.text3.value)

select * from 表 where zy1$zymc or zy2$zymc or zy3$zymc

坚守VFP最后的阵地
2019-05-15 23:02
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:226
专家分:42
注 册:2019-3-8
得分:0 
sdta,非常非常感谢!!!
select * from 表 where zy1$zymc or zy2$zymc or zy3$zymc
彻底解决问题!再次感谢!!!
2019-05-15 23:29



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




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

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