mysql delete的乙個問題

2021-04-14 03:05:45 字數 876 閱讀 7154

mysql> select * from a;

+------+-------+

| id   | name  |

+------+-------+

|    1 | test1 |

|    2 | test2 |

|    3 | test3 |

|    4 | test3 |

|    5 | test3 |

+------+-------+

5 rows in set (0.00 sec) 

對這樣的乙個表,需要刪除 name相同的記錄。id沒有要求,但我這裡只留下最小的id。

mysql> delete from a where id not in (select min(id) as id from a group by name);

error 1093 (hy000): you can't specify target table 'a' for update in from clause

google查詢結構,原來mysql不支援這樣的同時有select跟delete/update同乙個表的操作。不過可以變通一下:

mysql> delete from a where id not in (select * from (select min(id) as id from a group by name) b where a.id=b.id);

query ok, 2 rows affected (0.01 sec)

當然這樣的問題在sqlserver上沒有了。

delete from #a where id not in (select min(id) from #aa group by name)

這樣完全沒有問題。

MySQL DELETE 語句的乙個簡單介紹

你可以使用 sql 的 delete from 命令來刪除 mysql 資料表中的記錄。你可以在 mysql 命令提示符或 php 指令碼中執行該命令。以下是 sql delete 語句從 mysql 資料表中刪除資料的通用語法 delete from table name where clause...

CakePHP View Cache的乙個問題

最近一直在使用cakephp,感覺挺不錯。不過這幾天在使用view cache的時候卻發現乙個問題 url帶查詢引數時總是不命中快取。檢視 後發現問題所在,原來在view中使用cachehelper類來處理快取,每次儲存快取時採用的檔案路徑是 cache cache php return cache...

問乙個簡單的問題

問乙個簡單的問題 delphi windows sdk api 初學delphi 需要時間不明確的情況下 迴圈體次數不定 怎麼用乙個動畫來讓使用者知道程式還在執行 具體用什麼控制項,如何寫呢 謝謝 sf 你可以在迴圈開始之前將游標設定成漏斗狀,然後在結束時恢復原來的箭頭狀!怎麼寫呢?我想問一下滑鼠那...