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

Bagaimana Mengemas kini Nama Set Jadual Secara Dinamik Berdasarkan Julat Tarikh Menggunakan Pernyataan Kes?

Patricia Arquette
Lepaskan: 2024-12-29 13:39:11
asal
460 orang telah melayarinya

How to Dynamically Update a Table's Set Name Based on Date Ranges Using a Case Statement?

Penyata Kes Dinamik untuk Kemas Kini Menggunakan Tarikh dan Set Pisah

Masalah:

Diberi dua parameter, p_dates dan p_sets, yang mengandungi julat tarikh dan nama set masing-masing, matlamatnya adalah untuk menyediakan pernyataan kes SQL dinamik yang mengemas kini lajur set_name jadual dengan nama set yang sesuai berdasarkan julat tarikh yang diberikan.

Penyelesaian:

1. Membahagikan Tarikh:

Untuk membahagikan parameter p_dates kepada julat tarikh individu, gunakan fungsi string_to_array() dengan koma (,) sebagai pembatas:

SELECT unnest(string_to_array(p_dates, ',')) AS date_range;
Salin selepas log masuk

2. Set Pemisah:

Begitu juga, untuk memisahkan parameter p_sets kepada nama set individu, gunakan teknik yang sama:

SELECT unnest(string_to_array(p_sets, ',')) AS set_name;
Salin selepas log masuk

3. Menyediakan Penyata Kes Dinamik:

Menggunakan tarikh dan set yang dipisahkan, gabungkannya menjadi pernyataan kes secara dinamik:

CASE
  WHEN given_dates BETWEEN split_part(date_range, 'to', 1)::date
                     AND split_part(date_range, 'to', 2)::date
  THEN set_name
  ELSE NULL
END
Salin selepas log masuk

Pelaksanaan:

Untuk mengemas kini jadual table_name, gunakan SQL berikut pernyataan:

UPDATE table_name
SET set_name = (
  CASE
    WHEN given_dates BETWEEN split_part(date_range, 'to', 1)::date
                           AND split_part(date_range, 'to', 2)::date
    THEN set_name
    ELSE NULL
  END
)
FROM split_dates
JOIN split_sets
  ON 1 = 1;
Salin selepas log masuk

Faedah:

Pendekatan dinamik ini membolehkan kemas kini yang fleksibel berdasarkan parameter yang berubah-ubah, menghapuskan keperluan untuk pernyataan kes statik dan menyediakan penyelesaian yang lebih serba boleh untuk julat tarikh dan manipulasi set.

Atas ialah kandungan terperinci Bagaimana Mengemas kini Nama Set Jadual Secara Dinamik Berdasarkan Julat Tarikh 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