我有兴趣做一些事情like in this question,我只得到结果,如果列实际上包含给它的所有单词。
例如,如果我有两列,一列是时间戳,另一列是天气,我只想获得天气为cloudy
,rainy
,{{1}的时间戳。 },而不仅仅是snowy
,cloudy
。上面的例子有点像:
rainy
会返回类似的内容:
SELECT distinct timestamp FROM mytable
WHERE Weather LIKE 'snowy'
OR Weather LIKE 'cloudy'
OR Weather LIKE 'rainy'
但不是任何结果2017-09-22 snowy
2017-09-22 snowy
2017-09-22 cloudy
2017-09-22 rainy
2017-09-22 cloudy
,因为那天可能只有from 2017-09-21
和snowy
等。
只要天气符合条件,我上面的示例查询就会返回所有时间戳。
答案 0 :(得分:7)
您可以使用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
如果表格中没有timestamp
/ Weather
的重复项,请使用COUNT(*) = 3
代替COUNT(DISTINCT)
。
答案 1 :(得分:-1)
你可以使用像bellow,
SELECT时间戳 来自mytable 天气IN('下雪','多云','多雨')
输出: 例子
1
2
3
虚拟表
1 snow
2多云
3多雨
4 aaaa
5 bbbb