Heim > Fragen und Antworten > Hauptteil
Ich versuche herauszufinden, wie man einen Zeilendatensatz aus derselben Tabelle kopiert (nur wenn die Zeile nicht existiert), aber die Lösungen, die ich gefunden habe, sind nur teilweise. Zum Beispiel „Datensatz kopieren“ oder „Einfügen, falls nicht vorhanden“. Also habe ich versucht, diese Antworten zusammenzuführen, um meine Antwort zu erhalten, aber ... ich glaube, ich habe gerade einen ekelhaften Code erstellt.
Schauen wir uns das an
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);
Es gibt einen Standardformatdatensatz, UID = 0
。如果没有NAME = S_TYPE
的记录,则复制NAME = S_TYPE AND UID = 0
的记录,并将UID
geändert in 11. Der Datensatz sollte die Daten für alle Spalten kopieren. Also habe ich versucht, SELECT * zu verwenden, bin mir aber nicht sicher, ob es richtig ist.
Ich bin mir sicher, dass ich beides vermasselt habe...WHERE
P粉8608979432024-02-22 11:55:57
如果您已经有 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);