Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 具有特殊字符的自定义搜索_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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它可以被替换。这只是由于一个重构过程。;-)但是我也给了您一个答案,您需要坚持这个解决方案。请参阅上面的链接。