有主从结构的数据快速比较的sql怎么写?

2013-09-11 13:14:59 +08:00
 banxi1988
我有一个对象假设为P
{
"name":"banxi",
"sex":1,
"childs":[
{"name":"c1","birth":12},
{"name":"c2","birth":13},
]
}

这样的数据在数据库中的结构
是这样的
p_table:
name sex
==========================
banxi 1

还有一个child的表:
c_table:
name birth
=================================
c1 12
c2 15

怎么样才能用一条sql语句查出是否在数据库中已经有与对象P相同内容的记录了.
有的话返回.

我之前的话,
是根据p_table的name和sex查找出相同的.
然后在代码里一个个比对child.
但是这样的效率很不高.因为同name同sex的比较多.
2921 次点击
所在节点    MySQL
5 条回复
roricon
2013-09-11 13:55:28 +08:00
c_table和b_table是通过什么建立关系的?难道c_table字段里面没有一个类似于_parent的字段作为标示嘛?
wingoo
2013-09-11 14:02:52 +08:00
搞个指纹吧
把筛选条件md5一下
banxi1988
2013-09-11 15:19:47 +08:00
@roricon 忘了写了.
c_table中有一个pid引用了p_table的主键...
banxi1988
2013-09-11 15:22:54 +08:00
@wingoo
我刚想了下,因为childs的个数的有限的平均在2-5个左右.
所以,将childs中的字段拼接起来在p_table中作为一个新的字段c_checksums
查的时候只需要比较p_table中c_checksums就可以知道其子childs是不是相同了,这样就不用写复杂的sql了.
wingoo
2013-09-11 15:30:00 +08:00
@banxi1988 恩, 拼接后再做个md5就行了, 要不字段可能会长一些

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/82053

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX