簡體   English   中英

多列子查詢用於mysql中的更新語句

[英]multiple column subquery for update statement in mysql

我有以下更新聲明

UPDATE mytable
    set tmax = (
                SELECT tmax
                FROM myvalues
                WHERE Longitude_MAX >= v_lng and 
                      STR_TO_DATE(Date, '%m/%d/%Y') = v_date
                      limit 1),
        tmin = (
                SELECT tmin
                FROM myvalues
                WHERE Longitude_MAX >= v_lng and 
                      STR_TO_DATE(Date, '%m/%d/%Y') = v_date
                      limit 1),    
    where pkid = v_pkid;

它的工作非常緩慢,我們可以對其進行優化嗎?

網上有一些示例,但是這些示例將兩個表連接在一起,而沒有這樣的連接。

用JOIN試試

   UPDATE mytable  mt
   INNER JOIN myvalues mv
   ON STR_TO_DATE(mv.Date, '%m/%d/%Y') = mt.accident_dt
   SET mt.tmax = mv.tmax , mt.tmin=mv.tmin
   WHERE Longitude_MAX >= v_lng 
   and STR_TO_DATE(Date, '%m/%d/%Y') = v_date
   AND pkid = v_pkid;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM