Php 选择至少有一个不同参数通过数组的条目

Php 选择至少有一个不同参数通过数组的条目,php,mysql,zend-framework,Php,Mysql,Zend Framework,我一直在使用zend framework 1.2、MySql和google maps开发一个web应用程序,以动态创建一些标记。为此,我有一个具有以下结构的表: id lat long name ---------------------------------------------------- 1 12.4 20.5 myHotSpot 想象一下,一个特殊的用户可以上传一个具有此结构的csv来更新此表中的坐标。但在此之前,我想检

我一直在使用zend framework 1.2、MySql和google maps开发一个web应用程序,以动态创建一些标记。为此,我有一个具有以下结构的表:

id      lat       long     name
----------------------------------------------------
1       12.4       20.5    myHotSpot
想象一下,一个特殊的用户可以上传一个具有此结构的csv来更新此表中的坐标。但在此之前,我想检查哪些条目将被更新,以便用户确认此更改

出于这个原因,我想要一个通过数组返回将要更新的条目的查询

我知道我可以使用foreach或while等,并以这种方式使用查询:

foreach($items as $item){

$sql = "SELECT * FROM markers where id = ? and 
((lat is null or lat != ?) or (long is null or long != ?))";

$result = $this->freqDb->fetchRow($sql, array($item->id, $item->lat, $item->long), Zend_Db::FETCH_OBJ);
if($result)
    $element[] = $item;

}
但是,我想知道是否有其他方法只使用查询


感谢您抽出时间

您可以尝试以下方式:

SELECT *
FROM markers 
WHERE CONCAT( `id` , ',', `lat` , ',', `log` , ';' ) 
NOT IN ('csv_file_line1', 'csv_file_line2');
这样,您将在1个查询中检查csv文件中的所有行

编辑:其中缺少一个where子句:

AND `id` IN (IDs from csv file)

您好,谢谢您的回答,但有一个问题是它与标记的ID不匹配是的,没错。我注意到过了一会儿。在csv解析过程中,您必须创建两个数组:一个仅包含id(如果它们位于csv文件的开头,则应该可以),另一个包含整个csv行的数组。。。