Comment copier une ligne dans la même table dans MySQL uniquement si la ligne n'existe pas ?
P粉729518806
P粉729518806 2024-02-21 17:19:58
0
1
356

J'essaie de comprendre comment copier un enregistrement de ligne de la même table (uniquement si la ligne n'existe pas), mais les solutions que j'ai trouvées ne sont que partielles. Par exemple, « Copier l'enregistrement » ou « Insérer s'il n'est pas présent ». J'ai donc essayé de fusionner ces réponses pour faire ma réponse, mais... je suppose que je viens de créer un code dégoûtant.

Voyons ça

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);

Il existe un enregistrement au format par défaut, UID = 0。如果没有NAME = S_TYPE的记录,则复制NAME = S_TYPE AND UID = 0的记录,并将UIDchangé en 11. L'enregistrement doit copier les données de toutes les colonnes. J'ai donc essayé d'utiliser SELECT * mais je ne sais pas si c'est correct.

Je suis sûr d'avoir foiré les deux WHERE...

P粉729518806
P粉729518806

répondre à tous(1)
P粉860897943

Si vous avez déjà des supports sur 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);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!