首頁 > 資料庫 > mysql教程 > MySQL 5.0中如何有效率地刪除非唯一行?

MySQL 5.0中如何有效率地刪除非唯一行?

Mary-Kate Olsen
發布: 2024-12-27 11:01:08
原創
605 人瀏覽過

How to Efficiently Delete Non-Unique Rows in MySQL 5.0?

使用Select 語句刪除MySQL 中的非唯一行

提供的查詢語法

DELETE FROM posts where> 嘗試從posts中刪除沒有唯一ID 的行。但是,此語法與 MySQL 5.0 不相容。 <p><strong>重寫查詢</strong></p><p>要使查詢與 MySQL 5.0 相容,應重寫如下:</p> <p>`</p><pre class="brush:php;toolbar:false">從 id所在的貼文中刪除(<pre class="brush:php;toolbar:false">SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
登入後複製

)

`

理解修改後的查詢

修改後的查詢使用IN 運算子將posts 表的id 列與子查詢的結果集進行比較。此子查詢檢索在 posts 表中出現多次的行的 ID,表示 ID 不唯一。透過使用 IN 運算符,查詢僅選擇具有非唯一 ID 的行進行刪除。

其他注意事項

正如答案參考中提到的,這是必不可少的需要注意的是,MySQL 不允許從同一查詢中的子查詢修改同一表。為了規避此限制,可以將查詢分為兩個單獨的查詢:一個用於標識要刪除的行的 SELECT 查詢,然後是一個用於執行刪除的 DELETE 查詢。或者,可以使用帶有別名的嵌套子查詢來允許在單一查詢中進行刪除。

以上是MySQL 5.0中如何有效率地刪除非唯一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板