如何根据部分字符串匹配排除行?
问题描述:
我有一个名为“关键字”的长文本字段的作业表。如何根据部分字符串匹配排除行?
我想形成一个SELECT语句,我可以匹配某些关键字,但排除其他关键字。
例如,我需要SQL“给我所有关键字包含单词”肖像“的作业,但排除那些包含”户外“一词的作业。
谢谢! [如果需要修改,或其他信息需要的问题,只是让我知道。]
答
如何:
. . . WHERE keywords LIKE '%portraits%' AND keywords NOT LIKE '%outdoors%' . . .
一个更好的办法是确定关键字的一个单独的表的工作。每个作业/关键字组合应该有一行。通过适当的索引,您可以大大加快查找带或不带关键字的作业。
答
SELECT *
FROM [table_name]
WHERE keywords like '%portraits%'
AND keywords not like '%outdoors%';
感谢您的建议。一旦我得到我的数据位置,它将有兴趣检查查询与长时间查询与查询另一个表之间的表现。另一个可能会影响性能的变量是与完全匹配进行部分匹配的能力(即LIKE“%port%”vs =“portraits”) – skippix
为什么不给出一个索引示例和另一个表? –