我有一個表結構讓我從選擇查詢在下面給出的條件的最新變化
ID,的TrackID,TABLE_NAME操作, OLDVALUE,NEWVALUE,場, changedonetime
現在,如果我有3行爲相同的「trackid」相同的「字段」,那麼我如何選擇最新的三個?
即用於例如:
ID = 100 的TrackID = 152 表名 = jos_menu 操作 = UPDATE OLDVALUE = IPL NEWVALUE = IPLcccc 字段 =名稱直播 = 0 changedonetime = 2010-04-30十七點54分39秒
和
ID = 101 的TrackID = 152 表名 = jos_menu 操作 = UPDATE oldvalue = IPLcccc 新值 = IPL2222 場 =名稱現場 = 0 changedonetime = 2010-04-30 18點54分39秒
就像你看到的secind入口上方是最新的變化, 現在什麼查詢我應該用它來獲得唯一的一個,最新的排出來很多這樣的行...
$distupdqry = "select DISTINCT trackid,table_name from jos_audittrail where live = 0 AND operation = 'UPDATE'";
$disupdsel = mysql_query($distupdqry);
$t_ids = array();
$t_table = array();
while($row3 = mysql_fetch_array($disupdsel))
{
$t_ids[] = $row3['trackid'];
$t_table[] = $row3['table_name'];
//$t_table[] = $row3['table_name'];
}
//echo "<pre>";print_r($t_table);echo "<pre>";
//exit;
for($n=0;$n<count($t_ids);$n++)
{
$qupd = "SELECT * FROM jos_audittrail WHERE operation = 'UPDATE' AND trackid=$t_ids[$n] order by changedone DESC ";
$seletupdaudit = mysql_query($qupd);
$row4 = array();
$audit3 = array();
while($row4 = mysql_fetch_array($seletupdaudit))
{
$audit3[] = $row4;
}
$updatefield = '';
for($j=0;$j<count($audit3);$j++)
{
if($j == 0)
{
if($audit3[$j]['operation'] == "UPDATE")
{
//$insqry .= $audit2[$i]['operation']." ";
//echo "<br>";
$updatefield .= "UPDATE `".$audit3[$j]['table_name']."` SET ";
}
}
if($audit3[$j]['operation'] == "UPDATE")
{
$updatefield .= $audit3[$j]['field']." = '".$audit3[$j]['newvalue']."', ";
}
}
/*echo "<pre>";
print_r($audit3);
exit;*/
$primarykey = "SHOW INDEXES FROM `".$t_table[$n]."` WHERE Key_name = 'PRIMARY'";
$prime = mysql_query($primarykey);
$pkey = mysql_fetch_array($prime);
$updatefield .= "]";
echo $updatefield = str_replace(", ]"," WHERE ".$pkey['Column_name']." = '".$t_ids[$n]."'",$updatefield);
}
在上面的代碼,我取甌不同的ID在更新操作已完成,然後相應的查詢進行燒製,獲取所有更改在選定的獨特id的不同字段上完成... 在這裏,我通過從最初描述的表中提取記錄來創建更新查詢,這裏提到的是audittrail表... 因此,我需要在現場進行最後一次更改因此只有最新的變化可以在我用select查詢選擇...
請到通過代碼..看看如何才能讓需要的變化,我終於需要..
感謝比爾爲指導 – 2010-05-03 06:45:21
感謝BILLLION BILL它的工作..... :) – 2010-05-03 06:54:43