九色91_成人精品一区二区三区中文字幕_国产精品久久久久一区二区三区_欧美精品久久_国产精品99久久久久久久vr_www.国产视频

Hello! 歡迎來到小浪云!


在MySQL中,UPDATE JOIN語句可以包含ORDER BY嗎?


avatar
小浪云 2024-11-10 186

在MySQL中,UPDATE JOIN語句可以包含ORDER BY嗎?

mysql中,使用update join時,帶有order by會導致mysql崩潰嗎?

在mysql中,不能在帶有join的update語句中使用order by。這會導致mysql內部錯誤,甚至導致mysql崩潰。

原因

當update語句中包含join時,mysql將執行以下操作:

  1. 評估join條件,將匹配的記錄分組。
  2. 對于每個匹配的組,執行update操作。

order by子句用于對結果集進行排序。但是,在帶有join的update語句中,order by無法保證哪個組將首先被更新。這可能會導致mysql內部錯誤或崩潰。

修復方法

為了修復此問題,必須使用子查詢或臨時表來對記錄進行排序:

使用子查詢:

update cfg_dev_network_push_status t1 set ... where (t1.id, t1.push_status, t1.push_retry_times) in (     select id, push_status, push_retry_times     from (         select id, push_status, push_retry_times         from cfg_dev_network_push_status         join cfg_dev_network_bind_status on ...         order by push_status desc, push_retry_times desc, id asc     ) as subquery );
登錄后復制

使用臨時表:

CREATE TEMPORARY TABLE tmp_sort AS SELECT id, push_status, push_retry_times FROM cfg_dev_network_push_status JOIN cfg_dev_network_bind_status ON ... ORDER BY push_status DESC, push_retry_times DESC, id ASC;  UPDATE cfg_dev_network_push_status t1 SET ... WHERE (t1.id, t1.push_status, t1.push_retry_times) IN (     SELECT id, push_status, push_retry_times FROM tmp_sort );
登錄后復制

相關閱讀

主站蜘蛛池模板: 欧美成人一区二区 | 欧美另类日韩 | 午夜成人免费视频 | 亚洲精品一区二区二区 | 免费黄网站在线观看 | 成人精品一区二区三区中文字幕 | 国产午夜精品久久久 | 国产男女视频 | 亚洲电影成人 | 亚洲日产精品 | 日韩精品久久一区二区三区 | 中文字幕av一区二区三区 | 日韩视频一区 | 91精品在线观看入口 | 日本不卡一区 | 99精品在线观看 | 精品国产乱码久久久久久牛牛 | 成人网在线观看 | 免费黄色在线观看 | 国产黄色电影 | 欧美日韩电影一区二区 | 欧美男人天堂 | 婷婷综合激情 | 成人久久久 | 久久久久久国产精品免费免费 | 亚洲色在线视频 | 精品久久久久久久久久久久久 | 99精品国自产在线 | 中文字幕av在线播放 | 国产一区不卡 | 羞羞视频网站 | 精品美女视频在线观看免费软件 | 日韩免费福利视频 | 在线成人 | 国产精品色一区二区三区 | 午夜www | 日韩午夜 | 九九精品在线 | 欧美色综合一区二区三区 | 亚洲国产一区二区三区在线观看 | 久久99国产精品 |