我需要对每个单词使用逗号分隔的字符串作为 SQL AND 条件

2023-12-12

所以我有一个参数。可以说:

@Tags = 'Red,Large,New'

我的表中有一个名为 [Tags] 的字段

假设该字段包含“Red,Large,New,SomethingElse,AndSomethingElse”的特定行

我怎样才能将其分解以基本上实现以下逻辑,我将输入该逻辑以供理解,但我知道这是错误的:

SELECT * FROM MyTable WHERE
Tags LIKE 'FirstWordInString'
AND Tags Like 'SecondWordInString'
AND Tags Like 'ThirdWordInString'

但它知道在哪里停下来吗?知道只有一个字吗?还是两个?还是三个?

工作流程:

有人单击标签,数据集就会按该标签过滤。他们单击另一个标签,该标签将附加到搜索框,然后通过这两个标签过滤数据集,等等。

谢谢你!

Update:

这是基于产品的情况。

  1. 创建产品时,创建者可以输入以逗号分隔的搜索标签。
  2. 插入产品时,搜索标签将插入到名为 ProductTags (ProductID, TagID) 的单独表中

因此,在 Product 表中,我有一个字段将它们用字符串分隔,以便在应用程序端显示,并且在 ProductTag 表中也可以找到这些相同的标签,根据 ProductID 按行分隔。

我不明白的是,如果搜索中的所有标签都存在该产品,如何将条件放置在提供结果的选择中。

我认为使用逗号分隔字段会更容易,但也许我应该使用相应的表(ProductTags)


一种使用关系划分方法ProductTags表是

DECLARE @TagsToSearch TABLE (
  TagId VARCHAR(50) PRIMARY KEY )

INSERT INTO @TagsToSearch
VALUES      ('Red'),
            ('Large'),
            ('New')

SELECT PT.ProductID
FROM   ProductTags PT
       JOIN @TagsToSearch TS
         ON TS.TagId = PT.TagId
GROUP  BY PT.ProductID
HAVING COUNT(*) = (SELECT COUNT(*)
                   FROM   @TagsToSearch) 

The @TagsToSearch理想情况下,表是直接从应用程序传递的表值参数,但也可以通过对逗号分隔参数使用 split 函数来填充。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我需要对每个单词使用逗号分隔的字符串作为 SQL AND 条件 的相关文章

  • 使用条件 SQL 统计每月汇总记录

    我有一张桌子 我们就叫他们桌子吧SUMMARYDATA NIP NAME DEPARTMENT STATUSIN STATUSOUT TOTALLOSTTIME A1 ARIA BB 2020 01 21 08 06 23 2020 01
  • Magento --“SQLSTATE[23000]:违反完整性约束..”客户更新

    迁移服务器后 每次尝试更新客户信息时都会出现错误 我正在使用一个客户激活插件 http www magentocommerce com magento connect vinai extension 489 customer activat
  • 自动提取数据 - Oracle SQL Developer

    我通过 SQL Developer 连接到 Oracle 数据库 我想编写一个返回每月数据集的查询 然后将该数据提取到分隔文本文件中 我知道如何做到这一点就好了 我想知道是否有一种方法可以编写一个脚本来运行查询并在一年内逐月提取数据 这样我
  • 在 Mysql 上使用 EntityManager JPA 运行脚本

    我正在尝试运行脚本 sql 文件 但由于我尝试了多种方法 因此出现多个错误 这是我的主要 sql 脚本 INSERT INTO Unity VALUES 11 paq 0 2013 04 15 11 41 37 Admin Paquete
  • 有没有办法设置 SQL Server 作业计划每 30 秒运行一次?

    当我尝试创建计划时 我可以选择的最短时间是 1 分钟 有没有办法将其减少到秒 这篇文章在这里SQL Server 作业调度 http www sqlservercentral com articles Administration sqls
  • 如何连续添加起始行和下一行的值

    我只想创建一个 sql 查询 结果就像图片上的那样 类似于 SQL 中的斐波那契数列 Ex Column 1 10 则 Result 列的值为 Result 10 因为这是第一行 然后假设column1第二行的值为50 那么Result第二
  • 自动删除主键序列中的间隙

    我正在创建一个网页 该网页根据用户操作将数据存储到 MySQL 数据库中 数据库有很多行 行的主键是列 rowID 它只是按顺序对行进行编号 例如 1 2 3 4 用户可以选择删除行 问题是当用户删除最后一行以外的行时 rowID 中有一个
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 标量子查询包含多行

    我正在使用 H2 数据库并想要移动一些数据 为此 我创建了以下查询 UPDATE CUSTOMER SET EMAIL SELECT service EMAIL FROM CUSTOMER SERVICE AS service INNER
  • 以编程方式插入行(父行和子行)

    我正在使用 Spring 和 JDBCTemplate 该场景是 CUSTOMER 表和 ORDERS 表的父子关系 我想做一个插入 例如 1 个客户和 5 个订单 但我不确定如何以编程方式在 CUSTOMER 表中插入一行 如何获取 Or
  • 何时在 mysql 中使用 Union [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于 Union 您会在什么现实情况下使用它 因为对我来说 对具有不同列用途 含义的两个表中的两个选择查询使用联合是没有意义的 例如
  • 包含列和行总计的 SQL 数据透视表

    我正在尝试将行和列总计添加到该数据透视表中 create table test4 city nvarchar 10 race nvarchar 30 sex nvarchar 10 age int insert into test4 val
  • 在 C# 中执行基于存储过程的查询后,如何重新使用 CommandText 的 SqlCommand 对象?

    我有一个示例代码 aCommand CommandType CommandType StoredProcedure aCommand Parameters AddWithValue book id bookID aCommand Param
  • 3 个表的 SQL 查询(或联接)

    第一次在 Stack Overflow 上问问题 很棒的资源 但是只有一件事真正让我作为 SQL 新手感到困惑 我有三个表 我想获取与鲍勃的学生相关的所有导师的姓名 表 1 教师 ID Name 1 Bob 表 2 学生 STUDENT I
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • SQL Server 中高效的字符串后缀搜索?

    我想找到与谓词匹配的所有行MyColumn LIKE FooBar 但通过使用索引查找而不是扫描 一种方法本质上是创建 MyColumn 的反向版本并搜索反向模式 ooF 在该列上 在反向列上有一个常规索引 然而 我不喜欢手动创建这个反向列
  • 时间序列数据的自连接

    我需要一些帮助来完成我认为应该是相当简单的自连接查询 只需要将两条记录中匹配的开始时间和结束时间合并为一条记录 假设我的表中有以下内容 Time Event 08 00 Start 09 00 Stop 10 30 Start 10 45
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 使用存储过程中的 Select 查询将单个变量分配给多行

    我的查询是使用 Select 将单个变量分配给多行 存储过程中的查询 例如 我从 Employee 表中获取 10 个 比如 1 到 10 个员工 ID 声明 id int select id EmpId from Employee sel

随机推荐

  • Python:无法使用 odeint 和 Signum 函数求解微分方程

    我正在尝试解决这个问题 U 在哪里 here s c e t e dot t and e t theta t thetad t and e dot t theta dot t thetad dot t 其中thetad thetadesir
  • 插入 MySQL 表 PHP

    我在制作一个简单的表单来将数据插入 MySQL 表时遇到了一些麻烦 我不断收到此 SQL 错误 错误 您的 SQL 语法有错误 请检查手册 与您的 MySQL 服务器版本相对应 以便使用正确的语法 第 1 行 stock ItemNumbe
  • 传单 - 我似乎无法让基本示例发挥作用

    我一直在尝试让 Leaflet 一个网络地图 API 工作几个小时 起初我犯了一个错误 试图做太多事情 现在我只是试图让基本的例子发挥作用 这是我的代码 HTML 和 Javascript
  • PHP 自动缩小。有没有?

    我使用 PHP Minify 它非常棒 但我的问题是 是否有任何 PHP 插件或其他东西可以自动检测 javascript css 代码并自动缩小它 谢谢 JavaScript 缩小器 看一看here require once jsmin
  • Web 应用程序 [ROOT] 似乎已启动名为 [pollingConfigurationSource] 的线程,但未能停止它。内存泄漏

    您好 我在运行项目时遇到内存泄漏错误 我在用spring boot quards scheduler liquibase postgreSQL 9 6 这些是我们正在使用的技术 Error 12018 10 15 11 43 19 005
  • 多对多关系

    我在 Parse com 上有两个课程 图像和数据 在数据类中 我保存了 3 个字段 姓名 手机号码和职业 在图像类中 我正在保存图像 我必须在这两个类之间创建关系 以便我可以使用相应的手机号码获取图像 一个手机号码可以保存多张图片 表数据
  • 将凭据/令牌保存在 cookie 中?

    我已经成功完成身份验证 我知道向客户端返回令牌 JWT 该令牌有一个到期日期 时间 因此我正在考虑将令牌保存在 cookie 中 以便对未来的登录进行身份验证 但这可能行不通 然后我考虑将用户名和密码保存在 cookie 中 尽管我知道不建
  • Python问号的正则表达式[重复]

    这个问题在这里已经有答案了 正在处理一个数据集 其中包含下一个审核日期的列 此列有缺失字段 以问号 表示 我想捕捉这个 使用正则表达式 然后将没有审核日期的所有行与其余数据分开 问题 明确匹配问号的表达式是什么 问号前的反斜杠表示 字面匹配
  • SQL 错误:ORA-12712:新字符集必须是旧字符集的超集

    我想将oracle数据库的字符集从 WE8MSWIN1252 更改为 AL32UTF8 我尝试从链接 http download oracle com docs cd B10501 01 server 920 a96529 ch10 htm
  • 如何在循环中运行固定数量的进程?

    我有一个这样的脚本 bin bash for i 1 to 200000 do create input file run java done 我需要同时运行多个 8 或 16 个进程 java 但我不知道如何运行 我知道wait可以提供帮
  • 添加自定义触发器时如何保留 mahapps Metro 样式?

    我有一个采用默认 Metro 风格的按钮 但是 当我向按钮添加触发器时 样式被覆盖 添加您自己的样式和触发器时如何保留原始的 mahapps Metro 样式
  • 将 json 扁平化为 csv 格式

    我正在尝试根据用户选择的字段将 json 值转换为平面 csv 我的 json 看起来像 var data index test type news source partnerName propertyFile 9 relatedSour
  • 为什么 Java 中的 volatile 不更新变量的值?

    我读过Java中的 易失性 允许不同的线程访问同一字段并查看其他线程对该字段所做的更改 如果是这种情况 我预测当第一个和第二个线程完全运行时 d 的值将增加到 4 但相反 每个线程都会将 d 增加到值 2 public class Vola
  • 如何终止脚本中创建的后台进程

    假设我在 shell 中输入以下内容 while true do echo hahaha sleep 1 done 然后我知道我可以杀死它 fg CTRL C 但是 如果上面的命令在脚本中 例如tmp sh 并且我正在运行该脚本 如何杀死它
  • 在android上统一滑动手势

    我试图让大家认识到我正在从左向右滑动 我已经解决了这个问题 但我的问题是 直到我将手指从屏幕上移开 它才理解这一点 我的问题是我该如何做到这一点 以便它知道我向右走 然后向左走 然后再向右走 而无需将手指放在屏幕上 这是我到目前为止的代码
  • 未捕获的异常:错误: 获取属性 Proxy.InstallTrigger 的权限被拒绝

    我有以下代码来获取 facebook 的用户数据 div div
  • 由于 APK 文件无效,安装失败! - 安卓

    所以有几个关于这个主题的帖子 但看起来我的日志猫完全不同 不知道发生了什么事 当我尝试在我的设备上运行时 我收到控制台日志 2012 07 17 14 50 56 zrox Uploading zrox apk onto device 31
  • ARM TrustZone,连接外设?

    我目前正在对 ARM 的 TrustZone 进行一些研究 例如这里 ARM信息中心 据我了解 通过 TrustZone 可以创建基于 AMBA AXI 总线的安全环境 On ARM网站它说 安全和非安全世界的概念超出了处理器范围 涵盖了
  • 松散类型的indexOf()?

    假设我有数组 1 2 3 4 现在假设我想知道一个值的第一个索引 s not s 给定值 例如 3 对于这种情况 我想返回 2 但 Array indexOf 返回 1 更新2021 04 13 ES6介绍查找索引 和箭头功能 所以你现在可
  • 我需要对每个单词使用逗号分隔的字符串作为 SQL AND 条件

    所以我有一个参数 可以说 Tags Red Large New 我的表中有一个名为 Tags 的字段 假设该字段包含 Red Large New SomethingElse AndSomethingElse 的特定行 我怎样才能将其分解以基