如何在MySQL中复制同一表中的行记录,仅当该行记录不存在时?
P粉729518806
P粉729518806 2024-02-21 17:19:58
0
1
453

我试图找出如何从同一个表中复制行记录(仅当该行不存在时),但我找到的解决方案只是其中的一部分。例如,“复制记录”或“如果不存在则插入”。所以我试图合并这些答案来制作我的答案,但是......我想我只是做了一些令人厌恶的代码。

让我们看看这个

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);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板