1
jamiesun 2013-08-15 16:00:09 +08:00
那你试试用set字段呗
|
2
barbery 2013-08-15 16:02:48 +08:00
楼主想表达什么? 用tag id查文章? 是的话用IN就好, tag_id IN(1,2,3)
|
3
kenneth OP |
4
MarsWang 2013-08-15 16:07:25 +08:00
explain 下看看有没用到索引
|
5
noahzh 2013-08-15 16:14:48 +08:00
你这样是sql 中的反模式,叫乱穿马路.这样根本没有意义,使用一对多的关系..就可以解决.用关系表来连接
|
7
ipconfiger 2013-08-15 16:19:07 +08:00
IN 查询 不走索引的,绕道吧。
@kenneth |
8
revlis7 2013-08-15 16:22:54 +08:00
我们用奇葩的二进制来做这种分类(好像set的内部实现就是这样的)
比如: "科技":0001(十进制1) "生活":0010(十进制2) "网络":0100(十进制4) 比如用户偏好是0011(十进制3),那么就代表只查看科技与生活类的信息,查询时用按位与操作进行过滤。 效率高不高不知道,这么做的好处是可以预留几位为今后扩展作考虑,否则用set做字段类型的话,扩展set字段时,需要更新表结构重建整张表。 |
9
ayang23 2013-08-15 17:27:16 +08:00
这个字段只有3个取值,索引唯一性不高,mysql不会使用索引的,除非你强制索引。
|
10
msg7086 2013-08-15 18:13:23 +08:00
反设计模式。
一般推荐用一个关系表来表达。people_tag_relationship表。 |