首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
›
MySQL 5.5 Community Server
›
MySQL 5.6 Community Server
›
Percona Configuration Wizard
›
XtraBackup 搭建主从复制
Great Sites on MySQL
›
Percona
›
MySQL Performance Blog
›
Severalnines
推荐管理工具
›
Sequel Pro
›
phpMyAdmin
推荐书目
›
MySQL Cookbook
MySQL 相关项目
›
MariaDB
›
Drizzle
参考文档
›
http://mysql-python.sourceforge.net/MySQLdb.html
广告
V2EX
›
MySQL
有主从结构的数据快速比较的sql怎么写?
banxi1988
·
banxi1988
·
2013-09-11 13:14:59 +08:00
· 2867 次点击
这是一个创建于 4035 天前的主题,其中的信息可能已经有所发展或是发生改变。
我有一个对象假设为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的比较多.
name
sex
table
5 条回复
•
1970-01-01 08:00:00 +08:00
1
roricon
2013-09-11 13:55:28 +08:00
c_table和b_table是通过什么建立关系的?难道c_table字段里面没有一个类似于_parent的字段作为标示嘛?
2
wingoo
2013-09-11 14:02:52 +08:00
1
搞个指纹吧
把筛选条件md5一下
3
banxi1988
OP
2013-09-11 15:19:47 +08:00
@
roricon
忘了写了.
c_table中有一个pid引用了p_table的主键...
4
banxi1988
OP
2013-09-11 15:22:54 +08:00
@
wingoo
我刚想了下,因为childs的个数的有限的平均在2-5个左右.
所以,将childs中的字段拼接起来在p_table中作为一个新的字段c_checksums
查的时候只需要比较p_table中c_checksums就可以知道其子childs是不是相同了,这样就不用写复杂的sql了.
5
wingoo
2013-09-11 15:30:00 +08:00
@
banxi1988
恩, 拼接后再做个md5就行了, 要不字段可能会长一些
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
1116 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms ·
UTC 18:12
·
PVG 02:12
·
LAX 11:12
·
JFK 14:12
Developed with
CodeLauncher
♥ Do have faith in what you're doing.