我用这段代码来比较并查找 2 个 CSV 文件(每列 1 列,每行 1 个 EAN 代码)与 array_diff 在两个方向上的差异:
<?php
mysql_connect('LOCALHOST', 'db', 'passwd') or die(mysql_error());
mysql_select_db("db") or die(mysql_error());
$update_table = "ps_product";
$file1 = file('1.csv');
$file2 = file('2.csv');
$diff = array_diff($file1, $file2);
$diff2 = array_diff($file2, $file1);
$diffjoined = array_merge($diff, $diff2);
?>
现在我必须知道在合并的数组中,数据库内是否有相应的值,然后将数量设置为0:
If "a value inside array ($diffjoined) was found in DB"
foreach "ean code found in DB"
mysql_query ("UPDATE $update_table SET quantity='0' WHERE ean13 IN ($diffjoined) ");
最佳答案
我假设您的 $diffjoined
是代码中的 ean13 列表。
您的 SQL 查询已结束
$eans = "'".implode("','", $diffjoined)."'";
$q = "UPDATE $update_table SET quantity='0' WHERE ean13 IN ($eans)";
mysql_query($q);
关于php - Mysql查询并查找值是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25293026/