我需要一个select,它将返回如下结果:

SELECT * FROM MyTable WHERE Column1 CONTAINS 'word1 word2 word3'

我需要所有结果,也就是说,这包括带有'word2 word3 word1'或'word1 word3 word2'的字符串,或这三者的任何其他组合.

所有的单词都必须出现在结果中.

推荐答案

相当慢,但工作方法包括any个单词:

SELECT * FROM mytable
WHERE column1 LIKE '%word1%'
   OR column1 LIKE '%word2%'
   OR column1 LIKE '%word3%'

如果你需要all个单词,请使用以下方法:

SELECT * FROM mytable
WHERE column1 LIKE '%word1%'
  AND column1 LIKE '%word2%'
  AND column1 LIKE '%word3%'

如果您想要更快的速度,您需要查看全文搜索,这对于每种数据库类型都非常具体.

Sql相关问答推荐

为什么Postgrs Planner会在输出部分中显示我在查询中不使用的列?'""

SQL:如何查找聚合满足条件的连续日期

使用SQL创建列出两个时间戳之间小时数的列

返回找到的最小和最大row_number()spark SQL

PostgreSQL:按小时查看调整日期

Redshift PL/pgSQL循环中的参数化列名

SQL Athena/prest判断值是否在嵌套的json数组中

在SQL中,筛选其他列中只有一个值的ID

如何在 SNOSQL 中执行反连接(或 where 子句过滤)以查找字段不包含另一个表中的值的行?

如何在Hive SQL中分别按多列进行分组?

SQL Server中使用min()和max()从选定的特定值id表中删除不必要的时间

删除重复记录但保留最新的SQL查询

SQL获取两个日期范围之间的计数

为 sqlite 全文搜索 (fts) 创建触发器时出现虚拟表的不安全使用

MIN MAX 值与条件绑定

如果 SQL 中不存在数据,如何根据某个 ID 为所有日期添加前一行

SELECT 用于 Parent、Children 和 ORDER BY [Order] 列

面对来自以下两个代码的不同输出

如何根据 Amazon Athena 中的多个列值删除重复行?

连续日期的SQL