拿这张桌子:
id | field1 | foreign
1 abc 12
2 def 12
3 abc 13
4 def 13
我选择这样的记录:
"SELECT field1 FROM table WHERE foreign = 12"
和
"SELECT field1 FROM table WHERE foreign = 13"
现在考虑我的表,这个选择返回完全相同的记录值 如何判断给定2个任意SELECT,它们在SQL中重新调整相同的值?
PS。考虑到你投票结束这个问题,我已经重新制定了它。感谢
PS2。除了field1之外,我还有其他字段
PS3。我知道我可以通过PHP来实现它,但是有没有办法使用纯SQL?
答案 0 :(得分:3)
您可以使用md5sum来确认2个结果集是否相等,这在比较两个大结果集时非常有用。只需在mysql控制台中使用以下命令:
pager md5sum -
这将设置MySQL寻呼机在每次运行的查询后显示MD5Sum。
如果您使用PHP运行每个查询,那么您可以使用此方法创建相同的效果:
// This method will return MD5 of a result set. Compared results will return the same MD5Sum if they have the same results, and are ordered in the same way.
function query_md5($sql) {
$rs = mysql_query($sql);
$num = mysql_num_fields($rs);
$str = "";
while ($obj = mysql_fetch_array($rs)) {
$i = 0;
while ($i < $num) {
// no need for spaces or formatting
$str .= $obj[$i++];
}
}
return md5($str);
}
希望这有帮助!