【发布时间】:2014-01-10 15:07:50
【问题描述】:
我是法国人,英语不太流利,所以我会尽量说清楚。
我有带有 ID、CODE、value1、value2 和 Date 的“我的表”
我尝试仅获取每个唯一代码的最新日期,代码的 1 个结果
有了这个请求,它什么也不显示:
$sql = 'SELECT value1, value2,Date
FROM 'my table'
GROUP BY CODE
HAVING Date = MAX(Date)
ORDER BY CODE ASC';
有人帮帮我吗?
谢谢。
编辑:
我的桌子是 Geoloc
> ID IMEI Latitude Longitude Date
6 24047780 49.027063 1.147213 2014-01-02 11:19:45
8 24047780 48.738078 1.366940 2014-01-02 11:20:31
9 24048781 48.864715 2.350216 2014-01-02 12:23:12
10 24048781 48.8686132 2.3572024 2014-01-07 16:06:40
11 24048783 49.027063 1.147213 2014-01-07 16:07:45
我想通过imei显示一个结果,最近的。
EDIT2:我正在使用
$sql4 = 'SELECT `ID`, `IMEI`, `LATITUDE`, `LONGITUDE`, `DATE`
FROM (SELECT *,
IF(@lastId = @lastId:=IMEI, @Idx:=@Idx+1, @Idx:=0) rowNumber
FROM `Geoloc` l, (SELECT @lastId:=0, @Idx:=0) A
ORDER BY `imei` DESC, `date` DESC
) AS A
WHERE rowNumber = 0 ';
// on envoie la requête
$req4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
//the script i use to display informations
while( $Geoloc = mysql_fetch_assoc($req4))
{
$array[] = "new google.maps.LatLng(".$Geoloc['Latitude']." , ".$Geoloc['Longitude'].") " ;
$marqueurs[] =
"// affichage du marqueur_".$i." - start
var marker_".$i."=new google.maps.Marker({position:".$array[$i].",});
marker_".$i.".setMap(map);
var infowindow_".$i." = new google.maps.InfoWindow({content:\"".$Geoloc['Date']." - ".$Geoloc['IMEI']." - \"});
google.maps.event.addListener(marker_".$i.", 'click', function() {infowindow_".$i.".open(map,marker_".$i.");});
// affichage du marqueur_".$i." - end \n
";
$i++ ;
}
这个sql请求,纬度和经度不显示,aziz给出的sql请求显示,但是如果1个imei的2个最大日期相同,则显示两者
EDIT3:没关系,CAPS 有问题,谢谢 TUN
【问题讨论】:
-
我们可以看看您的表格值和所需的输出吗?
-
不要将表名括在引号中。使用反引号
-
是否也要对应的value1和value2?
-
@SalmanA 是的,我想使用 value1 和 value2 作为对应的结果
-
如果您的实际表格名为
my table,您需要在其周围使用反引号,原因有几个。 1)最好在表名周围使用反引号而不是引号(这会导致错误)和 2)两个单词之间有空格。只是一个快速的“仅供参考”;-)