Bagaimana untuk memasukkan dua tatasusunan berbeza ke dalam jadual dengan pernyataan SQL INSERT INTO?
P粉959676410
P粉959676410 2024-02-17 18:59:52
0
1
367

Sudah sekian lama saya tidak mengacau SQL sehingga saya terpaksa mula menggunakannya semula apabila saya membina permainan video saya sendiri. Saya menggunakan MySQL dan saya menghadapi beberapa isu yang rumit di sini.

Ini adalah dua tatasusunan saya;

SET @myArrayofRaces = '"Dwarf", "Elf", "Halfling", "Human", "Dragonborn", "Gnome", "Half-Elf", "Half-Orc", "Tiefling"';
SET @myArrayofClasses = '"Barbarian", "Bard", "Cleric", "Druid", "Fighter", "Monk", "Paladin", "Ranger", "Rogue", "Sorcerer", "Warlock", "Wizard"';

Seperti yang kita lihat, saya mempunyai 9 permainan dan 12 kelas. Saya mahu menggunakan tatasusunan ini untuk mengodkan pernyataan INSERT INTO supaya saya tidak perlu memasukkan 108 baris secara manual.

Ini adalah kenyataan INSERT INTO saya yang sedang berjalan;

INSERT INTO world_content.character_create_template (
        race,
        aspect,
        instance,
        pos_x,
        pos_y,
        pos_z,
        orientation,
        faction,
        autoAttack,
        race_icon,
        class_icon,
        race_description,
        class_description,
        isactive,
        respawnInstance,
        respawnPosX,
        respawnPosY,
        respawnPosZ,
        startingLevel,
        sprint 
    )
VALUES
    (
        437,
        428,
        29,
        - 170,
        74,
        154,
        0,
        1,
        - 1,
        "Assets/Resources/Assets/Icons/Race Icons/Dwarf.png",
        "Assets/Resources/Assets/Icons/Class Icons/Druid.png",
        "Dwarf",
        "Druid",
        1,
        29,
        - 170,
        74,
        154,
        1,
        - 1 
    )

Saya perlu mengulangi kenyataan INSERT INTO ini sehingga saya menyelesaikan kesemua 108 kombinasi perlumbaan dan kelas. Oleh itu, orang kerdil akan muncul dalam pangkalan data sebagai setiap kategori. Kemudian Elf akan dimasukkan ke dalam setiap kelas dalam pangkalan data. Kemudian separuh, kemudian manusia, dan seterusnya.

Tatasusunan kelas hanya masuk ke class_description dan class_icon dan anda boleh melihat saya sedang mengalih keluar pautan ke imej. Perlumbaan juga akan mengikuti imej race_icon.

Adakah sesiapa tahu cara untuk mengulangi ArrayofRaces 12 kali setiap perlumbaan supaya saya boleh mengimport kategori dan perlumbaan dengan mudah?

Terima kasih terlebih dahulu!

P粉959676410
P粉959676410

membalas semua(1)
P粉505917590

Anda boleh menjana semua kombinasi menggunakan cantuman silang. Contohnya:

INSERT INTO character_create_template (
        race,
        aspect,
        instance,
        pos_x,
        pos_y,
        pos_z,
        orientation,
        faction,
        autoAttack,
        race_icon,
        class_icon,
        race_description,
        class_description,
        isactive,
        respawnInstance,
        respawnPosX,
        respawnPosY,
        respawnPosZ,
        startingLevel,
        sprint 
    )
with
race as (
  select 'Dwarf' as name
  union all select 'Elf' -- repeat this line for more races
),
class as (
  select 'Barbarian' as name
  union all select 'Bard' -- repeat this line for more classes
)
select 
        437,
        428,
        29,
        - 170,
        74,
        154,
        0,
        1,
        - 1,
        "Assets/Resources/Assets/Icons/Race Icons/Dwarf.png",
        "Assets/Resources/Assets/Icons/Class Icons/Druid.png",
        r.name,
        c.name,
        1,
        29,
        - 170,
        74,
        154,
        1,
        - 1 
from race r
cross join class c

Lihat contoh larian di DB Fiddle.

NOTA: Contoh ini termasuk dua perlumbaan dan dua peringkat, menghasilkan sejumlah 4 kombinasi. Tambahkan selebihnya dan pertanyaan akan menjana kesemua 108.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan