Bolehkah anda INSERT SELECT berbilang baris tanpa menjalankan pilih pada baris yang sama setiap kali?
P粉304704653
P粉304704653 2023-09-07 11:31:14
0
1
386

Jika saya mempunyai jadual dan memerlukan satu nilai dari yang lain dan nilai lain datang dari tempat lain, adakah saya perlu menjalankan pilih setiap kali?

INSERT INTO table1 (name, otherValue) VALUES (SELECT name FROM table2 WHERE id = 1, outsideValue1), (SELECT name FROM table2 WHERE id = 1, outsideValue2), (SELECT name FROM table2 WHERE id = 1, outsideValue3);

Jadi nama pun sama and otherValue berbeza setiap kali cuba batch insert.

P粉304704653
P粉304704653

membalas semua (1)
P粉269847997

Salah satu cara ialah meletakkan "nilai lain" ke dalam jadual terbitan untuk dicantum silang dengan rekod sumber tunggal:

INSERT INTO table1 (name, otherValue) SELECT t2.name, v.val FROM table2 t2 CROSS JOIN ( SELECT 'val1' as val UNION ALL SELECT 'val2' UNION ALL SELECT 'val3' ) v WHERE t2.id = 1

Dalam MySQL 8.0.19 dan ke atas, kita boleh menggunakan sintaks VALUES/ROW:

INSERT INTO table1 (name, otherValue) SELECT t2.name, v.val FROM table2 t2 CROSS JOIN (VALUES ROW('val1'), ROW('val2'), ROW('val3') ) v(val) WHERE t2.id = 1
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!