为了清晰起见,让我们假设我有这样的表结构:
_ word _ filepath
==============
税/股/股/某物
税/股/股/另一种商品
狗
汽车
我想要做的是,给出一个单词列表,我想得到文件中每个单词都存在的文件列表,例如,给定一个"cat,dog“列表,我想得到”/usr/share/omething.txt“,而不是”/usr/share/antherthig.txt“,因为anotherthing.txt中没有包含单词狗。
发布于 2011-12-23 10:41:21
最简单的方法应该是通过计数将组与您正在搜索的单词数进行匹配。
SELECT filepath,count(*) c FROM table WHERE word IN ('cat','dog') GROUP BY filepath HAVING c=2发布于 2011-12-23 10:33:52
这会找到行
无论是猫还是狗matches
。
代码:
SELECT
*
FROM
MyTable M1
WHERE
M1.Word IN ('cat', 'dog')
AND
NOT EXISTS (SELECT *
FROM
MyTable M2
WHERE
M2.Word NOT IN ('cat', 'dog')
AND
M1.filepath = M2.filepath
);https://stackoverflow.com/questions/8614909
复制相似问题