欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql中錯誤:1093-You can’t specify target table for update in FROM clause的解決方法

 更新時間:2017年01月12日 09:32:04   作者:Codefly  
最近在工作中遇到了一個mysql錯誤提示1093:You can’t specify target table for update in FROM clause,后來通過查找相關的資料解決了這個問題,現(xiàn)在將解決的方法分享給大家,有需要的朋友們可以參考借鑒,下面來一起看看吧。

發(fā)現(xiàn)問題

最近在處理一些數(shù)據(jù)庫中數(shù)據(jù)的時候,寫了下面的這一條sql語句:

UPDATE f_student
SET school_id = 0
WHERE
 id > (
 SELECT
 id
 FROM
 f_student
 WHERE
 school_id = M
 LIMIT 1
 )
AND id < (
 (
 SELECT
 id
 FROM
 f_student
 WHERE
 school_id = M
 LIMIT 1
 ) + N
)

上面的sql是想將某個區(qū)間的數(shù)據(jù)進行修改,但是放到測試環(huán)境下一跑,報下面的錯誤:

[Err] 1093 – You can't specify target table ‘f_student' for update in FROM clause

意思很顯而易見了,說不能對進行查詢操作的表進行update操作,也就說我們的where條件中進行了子查詢,并且子查詢也是針對需要進行update操作的表的,mysql不支持這種查詢修改的方式。

解決方法

上網(wǎng)查了一下,針對這種問題可以通過”繞”的方式進行實現(xiàn),下面看sql語句。

UPDATE f_student SET school_id = 0 WHERE
                     id > 
                     (
                     SELECT id FROM ( 
                         SELECT id FROM f_student WHERE school_id = M LIMIT 1 
                       ) AS temp 
                     )
                     AND id <
                    (
                     (
                      SELECT id FROM ( 
                              SELECT id FROM f_student WHERE school_id = M LIMIT 1 
                             ) AS temp_1 
                     ) + N
                    )

ok,完全沒有問題。上面的sql相比于之前的sql只是在取id的時候繞了一下,通過一個子查詢的方式獲取到id,而不是直接進行獲取。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關文章

  • Navicat中如何導入數(shù)據(jù)庫SQL腳本并執(zhí)行

    Navicat中如何導入數(shù)據(jù)庫SQL腳本并執(zhí)行

    這篇文章主要給大家介紹了關于Navicat中如何導入數(shù)據(jù)庫SQL腳本并執(zhí)行的相關資料,Navicat是一個強大的MySQL數(shù)據(jù)庫管理和開發(fā)工具,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • MySQL低權限提權的方法

    MySQL低權限提權的方法

    在MySQL中,低權限提權是一種常見的需求,低權限用戶通過利用漏洞、存儲過程、用戶定義函數(shù)(UDF)和觸發(fā)器(Trigger)等技術手段進行權限提升,本文就來介紹一下,感興趣的可以了解一下
    2024-09-09
  • Mysql8斷電崩潰解決

    Mysql8斷電崩潰解決

    本文主要介紹了Mysql8斷電崩潰解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 在MySQL中操作克隆表的教程

    在MySQL中操作克隆表的教程

    這篇文章主要介紹了在MySQL中操作克隆表的教程,是Python入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • MySQL根據(jù)條件遷移數(shù)據(jù)的幾種方法實現(xiàn)

    MySQL根據(jù)條件遷移數(shù)據(jù)的幾種方法實現(xiàn)

    本文主要介紹了MySQL根據(jù)條件遷移數(shù)據(jù)的實現(xiàn),包括使用INSERT INTO SELECT、UPDATE、DELETE語句以及結(jié)合子查詢進行遷移,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Linux中 MySQL 授權遠程連接的方法步驟

    Linux中 MySQL 授權遠程連接的方法步驟

    如果需要遠程連接 Linux 系統(tǒng)上的 MySQL 時,必須為其 IP 和 具體用戶 進行 授權,本篇文章主要介紹了Linux中 MySQL 授權遠程連接的方法步驟,感興趣的小伙伴們可以參考一下
    2018-10-10
  • MySQL中的存儲過程異常處理

    MySQL中的存儲過程異常處理

    這篇文章主要介紹了MySQL中的存儲過程異常處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • MySQL數(shù)據(jù)庫查詢性能優(yōu)化策略

    MySQL數(shù)據(jù)庫查詢性能優(yōu)化策略

    這篇文章主要介紹了MySQL數(shù)據(jù)庫查詢性能優(yōu)化的策略,幫助大家的工作學習提高MySQL數(shù)據(jù)庫的性能,感興趣的朋友可以了解下
    2020-08-08
  • MySQL安裝配置以及安裝失敗解決過程

    MySQL安裝配置以及安裝失敗解決過程

    我們在下載完MYSQL時,安裝可能會遇到或大或小的問題,下面這篇文章主要給大家介紹了關于MySQL安裝配置以及安裝失敗解決的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • 在MySQL中開啟日志記錄并排查操作詳細步驟記錄

    在MySQL中開啟日志記錄并排查操作詳細步驟記錄

    MySQL日志管理是數(shù)據(jù)庫系統(tǒng)維護和優(yōu)化的重要環(huán)節(jié),它提供了對服務器運行狀態(tài)的詳細記錄,這篇文章主要給大家介紹了關于如何在MySQL中開啟日志記錄并排查操作的相關資料,需要的朋友可以參考下
    2024-08-08

最新評論