试了一下,具体问题叫 **Incorrect usage of UPDATE and ORDER BY** ,意思是**update** 语句如果有**join** 那么是不允许**order by** 的。不过,有点诡异的是你第1条语句居然成功了,我这边试下来你第1、2条语句都会报这个错。如果想先绕过这个问题,当下可以写成: update cfg_dev_network_push_status as T1 set T1.push_retry_times = T1.push_retry_times + 1, T1.push_status = '1', T1.push_end_time = '20231010141154002', T1.push_result = '1', T1.fail_reason = '109' where T1.del_flag = '0' and T1.push_type = '1' and T1.push_result != '0' and T1.push_retry_times < 3 and T1.id in ( select id from cfg_dev_network_bind_status T2 where T2.del_flag = '0' and T2.dev_id = 'theDevId' and T2.status = '1' ) order by T1.push_status desc, T1.push_retry_times desc, T1.id asc; 希望能帮助到你。