MySQL - 获取不匹配的结果
问题描述:
我正在尝试构建一个查询,该查询将返回不像查询的所有行。MySQL - 获取不匹配的结果
我只是不能得到它的工作。
查询是:
SELECT *
FROM EmailHistory
WHERE Subject not like
(
SELECT Date, Subject, Sender, Checks.Check FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT( '%', Checks.Check, '%')
)
所以基本上我想从EmailHistory都行,我不运行时,得到:当我尝试
SELECT Date, Subject, Sender, Checks.Check FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT( '%', Checks.Check, '%')
我得到以下错误运行查询:#1241 - 操作数应该包含1列(s)
查询
SELECT Date, Subject, Sender, Checks.Check FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT( '%', Checks.Check, '%')
正在工作,因为它应该,我得到的所有查询的主题匹配我检查从表Checks
表字段的查询。
答
您不能使用LIKE与表匹配。嵌套查询返回一个包含多列的表。
您正试图将表'主题'与列匹配。
您需要查询的是:
SELECT *
FROM EmailHistory
WHERE Subject NOT IN
(
SELECT Subject FROM EmailHistory JOIN Checks ON EmailHistory.Subject LIKE CONCAT( '%', Checks.Check, '%')
)
您不能返回多个字段更多的子选择......应MySQL如何比较5个agains 1场? 使用WHERE字段NOT IN(SELECT field .. WHERE ..) –
如果匹配字符串中的子字符串,而不是扫描表和列 – scaisEdge