[英]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.