作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个参数。比方说:
@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'
但它知道在哪里停下来?知道是否只有一个字?还是两个?还是三个?
工作流程:
有人点击了一个标签,数据集就被那个标签过滤了。他们点击另一个,标签被附加到搜索框,然后数据集被这两个标签过滤,等等。
谢谢!
更新:
这是基于产品的情况。
因此,在 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)
@TagsToSearch
表理想情况下是直接从您的应用程序传递的表值参数,但也可以通过对逗号分隔参数使用拆分函数来填充。
关于sql - 我需要为每个单词的 SQL AND 条件使用逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18433900/
我是一名优秀的程序员,十分优秀!