SQL SELECT 仅包含单词的字段

Posted

技术标签:

【中文标题】SQL SELECT 仅包含单词的字段【英文标题】:SQL SELECT only field where it contains words 【发布时间】:2018-03-03 22:44:45 【问题描述】:

我有兴趣做某事like in this question,如果该列实际上包含给它的所有单词,我只会得到结果。

例如,如果我有两列,一列是时间戳,另一列是天气,我只想获取天气为 cloudyrainysnowy 的时间戳,而不是如果它只有cloudyrainy。上面的一个例子有点像:

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,因为那天可能只有snowyrainy 等等。

只要天气符合条件,我上面执行的示例查询将返回所有时间戳。

【问题讨论】:

用您正在使用的数据库标记您的问题。 【参考方案1】:

您可以使用group byhaving。我会推荐:

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)

【讨论】:

【参考方案2】:

你可以像下面这样使用,

选择时间戳 来自我的表 WHERE Weather IN ('snowy', 'cloudy', 'rainy')

输出: 例子

1

2

3

虚拟表

1 下雪

2 多云

3 下雨

4 啊啊

5 bbbb

【讨论】:

这实际上并不能回答问题。

以上是关于SQL SELECT 仅包含单词的字段的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery SQL SELECT WHERE 字段包含来自其他表的许多单词

仅包含特定单词的 SQL SELECT LIKE

SQL Server判断某个字段是否包含中文/英文字符/数字

sql语句要select某字段不重复的数据应该如何写?

Acess的查询条件,怎样设定为“包含某个字段”,“不包含某个字段”又该怎么设呢?

如何使用 MS SQL 获取所有字段记录中使用的不同单词列表?