如何编写SQL WHERE子句筛选名称含Computer与Science的部门编号?
解决方法:匹配包含两个关键词的部门名称
嘿,这个需求很容易实现,我们只需要利用SQL的通配符和逻辑判断就能搞定。核心思路是确保deptname字段同时包含"Computer"和"Science"这两个词,不管它们之间有没有其他内容、顺序如何。
基础写法(不区分关键词顺序)
最直接的方式是用两个LIKE条件加上AND逻辑连接,这样就能保证两个关键词都存在:
WHERE deptname LIKE '%Computer%' AND deptname LIKE '%Science%'
这里的%是SQL里的通配符,代表任意长度的任意字符(包括空字符),所以%Computer%会匹配所有包含"Computer"的部门名称,同理%Science%匹配包含"Science"的,两者结合就筛选出同时包含两个词的记录。
大小写不敏感的写法(可选)
如果你的数据库默认区分大小写(比如PostgreSQL),可以用LOWER()或UPPER()函数统一转换大小写,避免因为关键词大小写不同导致漏匹配:
WHERE LOWER(deptname) LIKE '%computer%' AND LOWER(deptname) LIKE '%science%'
额外补充:如果要求关键词顺序固定
要是你之后需要确保"Computer"出现在"Science"之前(比如只匹配类似"Computer and Science"、"Computer Applied Science"的名称),可以把两个关键词放在同一个LIKE里:
WHERE deptname LIKE '%Computer%Science%'
内容的提问来源于stack exchange,提问作者user8420047
相关产品推荐
相关产品推荐

