You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL技术问询:如何从Product表筛选含Table_B词汇的记录?

筛选包含动态词汇列表中任意词汇的产品记录

我们需要从Product表中筛选出ProductName字段包含Table_B词汇列表中任意词汇的记录。由于词汇列表是动态更新且条目较多,无法通过带OR的LIKE运算符实现。


样本表

Product表

idProductName
1ABC Voucher
2Vitamin Generator
3Dark Chocolate
4Fast Charge
5Remote Controller
6Power Generator
7LED TV

Table_B(词汇列表)

WordList
Generator
Fast
Controller

期望输出

SrFull_List
2Vitamin Generator
4Fast Charge
5Remote Controller
6Power Generator

样本数据SQL代码

创建并填充Product临时表

DROP TABLE IF EXISTS #products

CREATE TABLE #products (
  id INT NOT NULL PRIMARY KEY,
  ProductName VARCHAR(255) NOT NULL
);

INSERT INTO #products (id, ProductName)
VALUES
  (1, 'ABC Voucher'),
  (2, 'Vitamin Generator'),
  (3, 'Dark Chocolate'),
  (4, 'Fast Charge'),
  (5, 'Remote Controller'),
  (6, 'Power Generator'),
  (7, 'LED TV');

创建并填充Table_B临时表

DROP TABLE IF EXISTS #Table_B

CREATE TABLE #Table_B (
    WordList VARCHAR(255) NOT NULL
);

INSERT INTO #Table_B (WordList)
VALUES
  ('Generator'),
  ('Fast'),
  ('Controller');

实现查询的SQL语句

SELECT 
    p.id AS Sr,
    p.ProductName AS Full_List
FROM #products p
JOIN #Table_B b 
    ON p.ProductName LIKE '%' + b.WordList + '%'
GROUP BY p.id, p.ProductName
ORDER BY p.id;

说明

  • 通过JOIN关联两张表,利用LIKE '%' + b.WordList + '%'匹配包含目标词汇的产品名称
  • 使用GROUP BY避免同一产品因匹配多个词汇而重复出现
  • 按id排序保证输出顺序与期望一致

内容的提问来源于stack exchange,提问作者Teknas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:25:01