| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1591 人关注过本帖
标题:求助:应该如何设置删除条件?
取消只看楼主 加入收藏
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
结帖率:94.44%
收藏
已结贴  问题点数:20 回复次数:9 
求助:应该如何设置删除条件?
表A,其中包含专业名称(zymc)、备注(bz)两个字段。表的内容是专业名称或备注字段中包含“化学”两个字的记录,如化学、应用化学、化学工程与工艺等。我的需求是:删除表中专业名称不是“化学”而且备注中没有“化学”和“应用化学”两个专业的所有记录,但专业名称如果是“化学(师范)”或者是“化学类”的,应该保留。
可能出现在专业名称或备注中的含“化学”两个字的专业有:化学、应用化学、化学生物学、能源化学、化学工程与工艺、能源化学工程、化学工程与工业生物工程、药物化学、化学测量学与技术、地球化学、材料化学。
我需要保留专业名称是“化学”、“化学(师范)”或者是“化学类”的,或者专业名称不是前面三个但备注中有“化学”或者“应用化学”专业的,其他全部删除。
请教:这样的删除条件应该怎么写?
谢谢!
A.rar (9.22 KB)
搜索更多相关主题的帖子: 工程 备注 专业 名称 删除 
2022-05-27 23:09
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
以下是引用schtg在2022-5-28 05:35:45的发言:

可以直接筛选吗:试一试
SELECT * FROM A WHERE "化学"$zymc OR "化学"$bz INTO table db


谢谢!这张表就是从一个更大的表中用你说的方法筛选出来的,需要再去除一些不完全符合条件的记录。
2022-05-28 08:58
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
以下是引用sdta在2022-5-28 07:04:15的发言:

或者专业名称不是前面三个但备注中有“化学”或者“应用化学”专业的
请楼主解释下这句话的意思

化学、化学类、材料化学、能源化学专业等是否算 化学 专业,还是 化学专业 才符合条件


谢谢,我没表达清楚。就是“化学”、“化学(师范)”、“化学类”、“应用化学”四种可以算,其他的如材料化学等都不算,都要删除。
2022-05-28 09:02
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
以下是引用my2318在2022-5-28 09:16:05的发言:

就按你的逻辑写就行了


我发现,从逻辑到代码还是有点距离
2022-05-28 09:35
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
回复 8楼 laowan001
谢谢!我试一下
2022-05-28 10:38
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
重新理了一下思路,发现需求表述有问题。其实只要删除专业名称不是“化学”、“化学(师范)”、“化学类”并且备注字段里没有“化学”或者“应用化学”专业的记录即可。
DELETE FROM a WHERE NOT zymc IN ("化学","化学(师范)","化学类") AND NOT ("化学"$bz OR "应用化学"$bz)
结果不尽人意:一是专业名称如“化学工程与工艺”且备注字段为空的,没有删掉;二是如专业名称为“化工与制药类”且备注字段中有“化学工程与工艺”等出现“化学”两字的,也没有删掉。
不知有没更好的办法?谢谢!
2022-05-28 11:32
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
笨办法,枚举,好在选项不多,解决了第一个问题:
DELETE FROM a WHERE NOT zymc IN ("化学","化学(师范)","化学类") AND NOT ("化学"$bz OR "应用化学"$bz) OR zymc in ("化学工程","化学测量")
第二个问题,牵涉到在备注中如何精确查找的问题,如何解决呢?
2022-05-28 12:20
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
以下是引用sdta在2022-5-28 13:31:42的发言:

为什么要删除,过滤一下不行吗


过滤也行,只是这个过滤条件该怎么写呢?
2022-05-28 13:49
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
谢谢,稍等,我好好消化一下
2022-05-28 13:59
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:0 
回复 16楼 sdta
对,你考虑得非常仔细。受你启发,问题已经较好地解决了。
比如我只要“化学”专业,在备注中的位置可能是:含化学、。。。、化学、。。。、化学专业等。用了类似  REPLACE all bz with STRTRAN(bz,"含"+zy+"、","假"+zy)  的语句,替换备注字段总分内容,然后搜索就成了。
谢谢你,也谢谢大家!
在这个论坛里总能学到好多,感谢所有热心人!
2022-05-28 15:59
快速回复:求助:应该如何设置删除条件?
数据加载中...
 
   



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

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