我正在创建一个关键字措辞模块,我想用逗号分隔的单词搜索数据。搜索分为逗号,
和减号-
。
看看这个例子我想要做的是
我在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
为什么这样做最好,帮助非常感谢。谢谢提前
答案 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。