Mysql 如何隔离查询以查找特定字段?

Mysql 如何隔离查询以查找特定字段?,mysql,sql,join,sql-like,Mysql,Sql,Join,Sql Like,以下是我正在使用的数据库: 我正在尝试创建一个查询,以输出仅的学者(acnum) 对“数据”(描述)字段感兴趣 我试过这个: select acnum from interest where upper(descrip) like '%DATA%'; 它部分起作用,它找到了对名称中包含“数据”的字段(descrip)感兴趣的学者(acnum),但它也列出了除了“数据”字段之外还有其他兴趣的学者(acnum),我如何找到只对“数据”字段(descrip)感兴趣的学者(acnum) 谢谢。要获得只

以下是我正在使用的数据库:

我正在尝试创建一个查询,以输出仅的学者(acnum) 对“数据”(描述)字段感兴趣

我试过这个:

select acnum
from interest
where upper(descrip) like '%DATA%';
它部分起作用,它找到了对名称中包含“数据”的字段(descrip)感兴趣的学者(acnum),但它也列出了除了“数据”字段之外还有其他兴趣的学者(acnum),我如何找到只对“数据”字段(descrip)感兴趣的学者(acnum)

谢谢。

要获得只对“数据”字段(descrip)感兴趣的学者(acnum),您可以使用以下查询和一些聚合来满足您的条件

SELECT acnum
FROM interest
GROUP BY acnum
HAVING COUNT(*) = SUM(CASE WHEN UPPER(descrip) LIKE '%DATA%' THEN 1 ELSE 0 END)
另一种方法——如果你想要更多关于学术的专栏——是
不存在

select a.*
from academics a
where not exists (select 1
                  from interest i
                  where a.acnum = i.acnum and upper(descrip) like '%DATA%'
                 );

如果使用MySQL,那么它可以缩写为SUM(x类似于“%y%”)。您可以提供
结果数据
预期数据