Rumah > pangkalan data > tutorial mysql > Bagaimana Mengemas kini Jadual Secara Dinamik Berdasarkan Julat Tarikh Pisah dan Tetapkan Nama Menggunakan Pernyataan Kes?

Bagaimana Mengemas kini Jadual Secara Dinamik Berdasarkan Julat Tarikh Pisah dan Tetapkan Nama Menggunakan Pernyataan Kes?

Susan Sarandon
Lepaskan: 2024-12-27 08:29:10
asal
210 orang telah melayarinya

How to Dynamically Update a Table Based on Split Date Ranges and Set Names Using a Case Statement?

Pisah Rentetan Diberi dan Sediakan Penyata Kes

Untuk mengemas kini jadual dengan cekap berdasarkan julat tarikh tertentu dan nama set yang sepadan, anda perlu memisahkan rentetan yang diberikan ke dalam komponen individu secara dinamik. Pendekatan ini membenarkan pengendalian parameter input berubah-ubah dan memastikan fleksibiliti dalam operasi kemas kini.

Memisahkan Julat Tarikh dan Menetapkan Nama

  1. Tarikh Pemisahan Julat:

    • Pisah parameter p_dates menggunakan koma (,) sebagai pembatas. Ini akan menghasilkan tatasusunan julat tarikh dalam format "tarikh_mula hingga tarikh_akhir."
    SELECT unnest(string_to_array(p_dates, ',')) AS date_range;
    Salin selepas log masuk
  2. Nama Set Pisah:

    • Begitu juga, bahagikan parameter p_sets menggunakan koma (,) sebagai pembatas. Ini akan menghasilkan susunan nama set.
    SELECT unnest(string_to_array(p_sets, ',')) AS set_name;
    Salin selepas log masuk

Penyediaan Penyata Kes Dinamik

Setelah julat tarikh dan ditetapkan nama dibahagikan, pernyataan kes dinamik boleh dibina menggunakan yang berikut langkah:

  1. Gelung Melalui Julat Tarikh:

    • Lelaran melalui tatasusunan julat tarikh.
  2. Julat Ekstrak Sempadan:

    • Ekstrak tarikh mula dan tamat daripada setiap julat menggunakan split_part dan nyatakan pembatas sebagai "ke."
  3. Klausa Kes Bina:

    • Untuk setiap julat tarikh, gunakan kemas kini table_name set set_name untuk mengemas kini nama set yang sepadan.
    • Gunakan syarat BETWEEN untuk menapis baris berdasarkan julat tarikh.

Coretan kod berikut menunjukkan cara untuk menyediakan kes dinamik pernyataan:

PREPARE upd_tbl AS
UPDATE table_name
SET    set_name = CASE
  WHEN given_date BETWEEN split_part(, 'to', 1)::date
                       AND split_part(, 'to', 2)::date THEN 
  ELSE null
END;
Salin selepas log masuk

Di mana:

  • $1 ialah pemegang tempat untuk julat tarikh.
  • $2 ialah pemegang tempat untuk nama set yang sepadan.

Dengan melaksanakan pernyataan yang disediakan ini dengan julat_tarikh dan nama_set sebagai parameter, jadual boleh dikemas kini berdasarkan julat tarikh dan nama yang ditetapkan.

Atas ialah kandungan terperinci Bagaimana Mengemas kini Jadual Secara Dinamik Berdasarkan Julat Tarikh Pisah dan Tetapkan Nama Menggunakan Pernyataan Kes?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan