我有兴趣做这样的问题,我只得到结果,如果列实际上包含给它的所有单词.
举例来说,如果我有两列,一个是时间戳,另一个是天气,我想只有在天气时间戳cloudy,rainy,snowy,而不是它是否只是cloudy,rainy.上面的一个例子有点像:
SELECT distinct timestamp FROM mytable
WHERE Weather LIKE 'snowy'
OR Weather LIKE 'cloudy'
OR Weather LIKE 'rainy'
Run Code Online (Sandbox Code Playgroud)
哪个会返回类似的东西:
2017-09-22 snowy
2017-09-22 snowy
2017-09-22 cloudy
2017-09-22 rainy
2017-09-22 cloudy
Run Code Online (Sandbox Code Playgroud)
但不是任何结果from 2017-09-21,因为它可能只是那一天snowy和rainy那一天等.
我做的上面的示例查询将返回所有时间戳,只要天气符合条件.
你可以使用group by和having.我建议:
SELECT timestamp
FROM mytable
WHERE Weather IN ('snowy', 'cloudy', 'rainy')
GROUP BY timestamp
HAVING COUNT(DISTINCT Weather) = 3; -- get all of them
Run Code Online (Sandbox Code Playgroud)
如果表中没有timestamp/的重复项Weather,则使用COUNT(*) = 3而不是COUNT(DISTINCT).