Php 选择至少有一个不同参数通过数组的条目
我一直在使用zend framework 1.2、MySql和google maps开发一个web应用程序,以动态创建一些标记。为此,我有一个具有以下结构的表: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来更新此表中的坐标。但在此之前,我想检
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行的数组。。。