繁体   English   中英

如何在mysql和php中比较两个表?

[英]how to compare two tables in mysql and php?

它给我带来了另一个麻烦!

表格1

  • n:1
  • n:2
  • n:3

表2

  • n:1
  • n:3

查询1

  • 结果数量:3

查询2

  • 结果数字:2

我需要比较这些表,如果Table1 == Table2回显“找到”。 所以我做了2个不同的查询,我这样做是这样的:

while($row1 = mysql_fetch_array($Query1))
{
while($row2 = mysql_fetch_array($Query2))
{
if($row1['n'] == $row2['n'] )
{
echo 'found';
}
}
}

有点笨? :\\因为似乎只显示第一个结果并停止。

谢谢

编辑

示例:我得到了这个表:客户,而表:VIP客户。 如果有任何具有相同ID的客户端,我需要在表VIP客户端上进行搜索,并产生回显:“找到它”

不知道这是否是您想要的,但是您可以在一个查询中执行此操作以查看vipclients中是否有匹配的记录。

select a.*,b.* ,CASE WHEN b.clientid IS NOT NULL 
       THEN 'FOUND'
       ELSE 'NOT FOUND'
END AS vipexists 
from clients a left outer join vipclients b on a.clientid=b.clientid

如果我对您的理解正确,那么您想查找两个表中是否存在相同的数据。 您可以将结果存储到两个不同的数组中

$table1 = array();
$table2 = array();
while ($row = mysql_query($result1)){
  $table1[] = $row[0];
}
while ($row = mysql_query($result2)){
  $table2[] = $row[0];
}

然后使用array_intersect()查找两者的交集

$intersect = array_intersect($table1, $table2);
echo count($intersect) > 0 ? "Found" : "Not Found";
    if( !array_diff( $row1, $row2) )
    {
      echo 'found';
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM