繁体   English   中英

如何在mysql中找到两行之间的区别

[英]how to find the difference between two rows in mysql

我有两个像下面这样的表,我需要找到两个表值之间的区别,它们的列名是否可能在mysql中?

桌子看起来像这样

表格1

id | ArtNo     | Barcode       | CArtNo | Description | SizeDesc 

1  | O15040034 | 5704039086589 | 1235748 | Desc       | 40X50cm

表2

id | ArtNo     | Barcode       | CArtNo  | Description | SizeDesc 

1  | O15040034 | 5704045086589 | 8759s89 | Desc        | 40X50cm

我的密码

像往常一样,我将编写sql代码并获取列,条件是在mysql查询中是否有任何简单的方法可以达到期望的结果?

$sql = "select * from Table1 where ArtNo = 'O15040034'";
$fetch = mysql_fetch_array($sql);

if($artno != $artno){
   //some condition here
}

除了这些疑问,我还有什么目标吗?

您可以使用以下两种方法从两个表中选择它们的任何列都不匹配的行(除了id ):

SELECT aa.id AS aa_id, aa.artNo AS aa_art_no, aa.Barcode AS aa_barcode, aa.CArtNo AS aa_cart_no, 
        aa.Description AS aa_description, aa.SizeDesc AS aa_size_desc,
        bb.artNo AS bb_art_no, bb.Barcode AS bb_barcode, bb.CArtNo AS bb_cart_no, 
        bb.Description AS bb_description, bb.SizeDesc AS bb_size_desc
FROM Table1 AS aa, Table2 AS bb
WHERE aa.id = bb.id AND (
    aa.artNo != bb.artNo OR aa.Barcode != bb.Barcode OR aa.CArtNo != bb.CArtNo 
    OR aa.Description != bb.Description OR aa.SizeDesc != bb.SizeDesc
)

另外,正如@Naruto所说,不要使用mysql_*函数,因为它们已被弃用。

暂无
暂无

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

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