返回查询的所有行,其中一列中的字符串值与另一列中的字符串值匹配
Posted
技术标签:
【中文标题】返回查询的所有行,其中一列中的字符串值与另一列中的字符串值匹配【英文标题】:Returning all rows of a query where the string values in one column match the string values in another column 【发布时间】:2019-01-31 00:43:00 【问题描述】:我一直在无休止地寻找这个问题的答案:
我们的团队使用的查询返回包含 13 列的数据集。我们希望通过仅返回“Actual Collection”列中的任何字符串值在相邻列“PrvPrComments”中的行来缩小结果范围。此外,我们希望对“实际制造商”和“PrvPrComments”列执行相同的操作。如果实际集合或实际制造商中的字符串值存在于 PrvPrComments 中,则我们希望返回该行,如果不存在则排除它。
棘手的部分是 PrvPrComments 是一个包含长文本字符串的列,因此查询需要解析以查找和匹配字符串。它们还需要完全匹配,这样“Pillow Perfect”和“pillow”就不是同一个东西了。
这是下面发布的示例。我想返回包含“cowboy”和“chandelier”的行,因为有匹配但没有其他匹配:
Example of data
我最初的猜测是编写一个使用全文索引和/或包含的查询。任何帮助将不胜感激,我很抱歉没有在这里发布基础代码,我对此很陌生,并且在从哪里开始时遇到了麻烦。
谢谢
【问题讨论】:
【参考方案1】:where '%' + actualCollection + '%' like PrvPrComments
【讨论】:
这被标记为低质量。请使用 cmets 对其进行编辑以改进答案。【参考方案2】:如果数据不多,可以使用(like表达式)返回数据, WHERE PrvPrComments LIKE '%' + actualCollection + '%'
但是如果数据很大并且全文搜索不会那么有用,您可能会有另一列作为标志并在 INSERTION 时填充相同的列,(当 actualCollection 是 LIKE PrvPrComments 然后将该标志设置为 1 ) .稍后您需要查询标记为 1 的行
【讨论】:
以上是关于返回查询的所有行,其中一列中的字符串值与另一列中的字符串值匹配的主要内容,如果未能解决你的问题,请参考以下文章