Wie kopiere ich eine Zeile in derselben Tabelle in MySQL nur, wenn die Zeile nicht existiert?
P粉729518806
P粉729518806 2024-02-21 17:19:58
0
1
451

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的记录,并将UIDgeä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粉729518806
P粉729518806

Antworte allen(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);
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage