2015-08-27 74 views
0

我使用多個子查詢在同一個表內轉換列日期時間格式。我收到一個表格不存在的錯誤。在同一個表中有多個子查詢的Mysql更新表

這裏是我的查詢:

update mytable as t 
set t.PO_Date = (
    select DATE_FORMAT(STR_TO_DATE(PO_Date, '%m/%d/%Y'), '%Y-%m-%d') 
    from mytable as i 
    where i.Pri_ID = (select MAX(Pri_ID) from mytable) 
); 

我已經試過了表的別名多次改變,一直得到該別名t不存在錯誤。

+0

你不需要第二個選擇,'設置t.PO_Date = DATE_FORMAT ... WHERE' – Mihai

+0

更改第一行「更新mytable的T」,因爲我不認爲MySQL允許爲要定義的表的別名由關鍵字「as」。 – Sterls

+0

你的目標是用max'pri_id'改變所有記錄的日期格式?你可以發佈一些源數據樣本嗎? – Alex

回答

0

如果有人在將來遇到這種情況,這裏是糾正這個問題的原因。

update mytable as t 
set t.PO_Date = DATE_FORMAT(STR_TO_DATE(PO_Date, '%m/%d/%Y'), '%Y-%m-%d') 
ORDER BY t.Pri_ID DESC LIMIT 1;