如何检查一组记录是否相等?

时间:2011-04-18 10:31:25

标签: php mysql

拿这张桌子:

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?

1 个答案:

答案 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);
}

希望这有帮助!