如何在MySQL中複製同一表中的行記錄,僅當該行記錄不存在時?
P粉729518806
P粉729518806 2024-02-21 17:19:58
0
1
450

我試圖找出如何從同一個表中複製行記錄(僅當該行不存在時),但我找到的解決方案只是其中的一部分。例如,「複製記錄」或「如果不存在則插入」。所以我試著合併這些答案來製作我的答案,但是......我想我只是做了一些令人厭惡的程式碼。

讓我們看看這個

INSERT INTO LCL
SELECT * FROM LCL WHERE (UID = 0 AND NAME = 'S_TYPE')
WHERE NOT EXISTS (SELECT * FROM LCL WHERE UID = 11 AND NAME = 'S_TYPE' LIMIT 1);

有一筆預設格式記錄,UID = 0。如果沒有NAME = S_TYPE的記錄,則複製NAME = S_TYPE AND UID = 0的記錄,並將UID改為11。該記錄應複製所有列的資料。所以我嘗試使用 SELECT * 但不確定是否正確。

我確定我把兩個 WHEREs 搞砸了...

P粉729518806
P粉729518806

全部回覆(1)
P粉860897943

如果您已經有 WHERE 那麼後續應該是 AND。我不認為你真的需要第一個 WHERE 上的括號:

INSERT INTO LCL
SELECT * FROM LCL 
 WHERE UID = 0 AND NAME = 'S_TYPE'
   AND NOT EXISTS (SELECT * FROM LCL WHERE UID = 11 AND NAME = 'S_TYPE' LIMIT 1);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板