1
yangqi 2016-04-05 02:30:18 +08:00
这种查询相当于搜索了,效率很低,不推荐使用
|
2
fanwei 2016-04-05 03:11:39 +08:00
。。。
B 表就不应该用这个格式去存数据。 应该类似下面这样去存 ID B 表 字段 X 1 1 a 2 1 c 3 1 d 4 2 c 5 2 d 6 3 a 7 3 d 8 4 b |
3
msg7086 2016-04-05 03:13:46 +08:00
首先……
你还是去学一下数据库范式吧。 |
4
HanSonJ 2016-04-05 08:12:47 +08:00
设计就有问题了
|
5
palmers 2016-04-05 08:17:43 +08:00
我同意 ls 说法 不能该设计,我觉得只能通过代码和存储过程来做了
|
6
aiver 2016-04-05 08:55:01 +08:00
这个是典型的一对多的范式啊, B 表不应该这么存储 A 表的字段值,建议一对多分开存储,这样的搜索效率要高很多。基于目前的表的话,可以使用 mysql 的字符串函数: find_in_set(str1,str2)试试
|
7
stackboom 2016-04-05 08:58:52 +08:00
恩,楼上说的对,可以使用 find_in_set ,其实也可以使用 like 来实现。
|
8
Honwhy 2016-04-05 09:31:50 +08:00 via iPhone
|
9
LionXen OP 感谢各位的回答已找到解决办法
|
10
chongzi11 2016-04-05 10:35:03 +08:00
感谢提问,别人回答之后我也意识到数据库建表得学习一下了。
|
11
zacard 2016-04-05 11:17:39 +08:00
楼上说数据库范式的。。。如果小系统是方便的。现在都是大规模分表分库的话,都是反范式设计的。 mysql 用 find_in_set 也是可以的。一般会先通过 es 等搜索引擎查出 id 先
|
12
500miles 2016-04-05 12:01:42 +08:00
除了传统多对多设计范式,
现在大部分数据库 都在提供 json 支持了.. |