使用特殊字符自定义搜索

时间:2015-06-20 07:11:33

标签: sql sql-server sql-server-2008

我正在创建一个关键字措辞模块,我想用逗号分隔的单词搜索数据。搜索分为逗号,和减号-。 看看这个例子我想要做的是

我在SQL

中有一个主表名tbl_main
AS_ID   KWD
1   Man,Businessman,Business,Office,confidence,arms crossed
2   Man,Businessman,Business,Office,laptop,corridor,waiting
3   man,business,mobile phone,mobile,phone
4   Welcome,Greeting,beautiful,bride,celebration,wedding,woman,happiness
5   beautiful,bride,wedding,woman,happiness,mobile phone,talking
6   woman,girl,Digital Tablet,working,sitting,online
7   woman,girl,Digital Tablet,working,smiling,happiness,hand on chin 
  

如果搜索文本为= Man,则商家结果AS_ID为= 1,2

     

如果搜索文本为= Man,-Businessman,则结果AS_ID为= 3

     

如果搜索文本是=女人,女孩, - 工作,那么结果AS_ID是= 4,5

为什么这样做最好,帮助非常感谢。谢谢提前

1 个答案:

答案 0 :(得分:1)

好吧提一下。这根本不是一个好的数据结构。您应该将所有类别拆分为单独的行,这样可以提高数据库的速度,甚至是大小。

这是一个如何做到这一点的例子。

AS

AS_ID (PK)
... your additional field...

类别

CAT_ID (PK)
CAT_NAME (example: Man)

AS_Cats

AS_ID (PK) (FK -> Table AS)
CAT_ID (PK) (FK -> Table Categories)

AS_Cats 包含组合主键,以避免一个AS的重复类别。

如果您真的想要这个数据结构,可以查看将字符串拆分成行的代码。这样您就可以JOIN并过滤包含所有密钥的AS_ID。查看示例here