【发布时间】:2015-07-02 09:23:39
【问题描述】:
表1
ID Name Tags
----------------------------------
1 Customer1 Tag1,Tag5,Tag4
2 Customer2 Tag2,Tag6,Tag4,Tag11
3 Customer5 Tag6,Tag5,Tag10
和表2
ID Name Tags
----------------------------------
1 Product1 Tag1,Tag10,Tag6
2 Product2 Tag2,Tag1,Tag5
3 Product5 Tag1,Tag2,Tag3
将 Table1 和 Table2 与标签列连接的最佳方法是什么?
对于表 1 中标签列上的每个逗号分隔标签,它应该查看表 2 上逗号分隔的标签列
注意:表格不是全文索引。
【问题讨论】:
-
你的问题让我想到了一个 HTML 解决方案 (jquery),但标签
sql让我不这么认为 -
列中的 CVS 经常使用,但这是非常糟糕的做法。重新设计数据库很好。但是,至少您可以用逗号 (",Tag1,Tag2,Tag3,") 将第一个和最后一个值括起来,以便能够使用
Tags LIKE '%,Tag1,%'. Otherwise you may scanLIKE '%Tag1%'` 进行扫描并找到“Tag19”。 -
您也许可以使用来自stackoverflow.com/q/5493510/121309 的解决方案来创建中间表并对其进行查询。不过不要指望任何表现。
标签: sql sql-server