Sql 具有特殊字符的自定义搜索
我正在创建一个关键措辞模块,希望在其中使用逗号分隔的单词搜索数据。搜索分为逗号Sql 具有特殊字符的自定义搜索,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在创建一个关键措辞模块,希望在其中使用逗号分隔的单词搜索数据。搜索分为逗号、和减号-。 看看这个例子,我真正想做的是 我在SQL中有一个主表名tbl\u 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,mobi
、
和减号-
。
看看这个例子,我真正想做的是
我在SQL中有一个主表名tbl\u 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,则结果为_ID=1,2
如果搜索文本为=Man,-businessor,则结果为_ID=3
如果搜索文本为=woman,girl,-正在工作,则结果为_ID=4,5
最好的方法是什么?为什么要这样做,非常感谢您的帮助。请提前感谢。这根本不是一个好的数据结构。您应该将所有类别拆分为单独的行,这将提高数据库的速度甚至大小 这里有一个例子,我将如何做到这一点 表为:
AS_ID (PK)
... your additional field...
CAT_ID (PK)
CAT_NAME (example: Man)
表类别:
AS_ID (PK)
... your additional field...
CAT_ID (PK)
CAT_NAME (example: Man)
表如图所示
AS_ID (PK) (FK -> Table AS)
CAT_ID (PK) (FK -> Table Categories)
表AS_Cats包含一个组合主键,以避免一个AS的类别重复
如果仍然需要这种数据结构,可以查看将字符串拆分为行的代码。这样,您就可以
加入并筛选包含所有键的AS_ID
。请看一个例子。我已经知道数据结构,先生,但它是一个旧数据,我无法替换它:(已将数百万行添加到表中。@lonicWell它可以被替换。这只是由于一个重构过程。;-)但是我也给了您一个答案,您需要坚持这个解决方案。请参阅上面的链接。