首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL:如何使用存储在单独搜索表中的单词进行关键字搜索?

SQL:如何使用存储在单独搜索表中的单词进行关键字搜索?
EN

Stack Overflow用户
提问于 2022-10-26 04:13:18
回答 1查看 25关注 0票数 1

我正在SQL表中进行关键字搜索,在该表中,我希望搜索一组关键字word1, word2, ... , wordn,并在新列中找到这些关键字的标志实例。假设我在[Description]变量#TABLE中查找这些关键字,我使用的查询如下所示:

代码语言:javascript
复制
SELECT *
  , (CASE WHEN [Description] LIKE '%word1%' THEN 'word1'
          WHEN [Description] LIKE '%word2%' THEN 'word2'
          ...
          WHEN [Description] LIKE '%wordn%' THEN 'wordn'
          END) as Keywords
INTO #RESULTS_TABLE
FROM #TABLE

现在,这个方法的问题是,我正在搜索的关键字被硬编码到代码中,这使得如果我想要更改正在搜索的关键字集变得不方便。不需要这样做,我希望将关键字作为变量#KEYWORDS在某个单独的表[words]中搜索,然后引用该表中列出的所有关键字(在该变量名下)进行搜索。这将允许我修改搜索表,然后在更新的搜索表上重新运行select查询,而不必更改select代码。

问题:假设我的表#KEYWORDS中填充了要搜索的关键字,那么编写关键字搜索查询的最佳方法是从表中获取关键字而不是硬编码的关键字?

EN

回答 1

Stack Overflow用户

发布于 2022-10-26 04:25:45

我的第一选择是临时桌:

代码语言:javascript
复制
create temporary table words_table (
words varchar
);

insert into words_table values
(word1),
(word2), --  etc for the rest of your rows

然后你就可以:

代码语言:javascript
复制
select t.[Description]
from
  your_table t
  join words_table wt on
    ON t.[Description] LIKE CONCAT('%',wt.words,'%')

代码语言:javascript
复制
select t.[Description]
from
  your_table t
  join words_table wt
    ON t.[Description] LIKE '%' + wt.words +'%'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74202632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档