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

时间:2012-08-02 02:29:43

标签: php mysql

我的另一个麻烦!

表1

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

表2

  • n:1
  • n:3

查询1

  • 结果数:3

QUERY2

  • 结果数:2

我需要比较这些表,如果 Table1 == Table2 echo“found”。所以我做了两个不同的查询,我这样做:

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

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

由于

修改

Exmpl:我得到了这个表:客户端和表:VIP客户端。我需要搜索表VIP客户端,如果有任何客户端具有相同的id,并产生回声:“找到它”

3 个答案:

答案 0 :(得分:1)

不确定这是否是你想要的,但你可以在一个查询中查看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

答案 1 :(得分:0)

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

$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";

答案 2 :(得分:0)

    if( !array_diff( $row1, $row2) )
    {
      echo 'found';
    }