Bagaimana untuk menyalin baris dalam jadual yang sama dalam MySQL hanya jika baris itu tidak wujud?
P粉729518806
P粉729518806 2024-02-21 17:19:58
0
1
452

Saya cuba memikirkan cara untuk menyalin rekod baris daripada jadual yang sama (hanya jika baris itu tidak wujud), tetapi penyelesaian yang saya temui hanyalah separa. Contohnya, "Salin rekod" atau "Sisipkan jika tidak ada." Jadi saya cuba menggabungkan jawapan ini untuk membuat jawapan saya, tetapi... Saya rasa saya hanya membuat beberapa kod yang menjijikkan.

Jom lihat ini

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

Terdapat satu rekod format lalai, UID = 0。如果没有NAME = S_TYPE的记录,则复制NAME = S_TYPE AND UID = 0的记录,并将UIDditukar kepada 11. Rekod hendaklah menyalin data untuk semua lajur. Jadi saya cuba menggunakan SELECT * tetapi tidak pasti sama ada ia betul.

Saya pasti saya merosakkan kedua-dua WHEREs...

P粉729518806
P粉729518806

membalas semua(1)
P粉860897943

Jika anda sudah mempunyai kurungan pada 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);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan