Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memisahkan dan Menggunakan Rentetan Input untuk Penyata Kes Dinamik dengan Cekap?

Bagaimana untuk Memisahkan dan Menggunakan Rentetan Input untuk Penyata Kes Dinamik dengan Cekap?

Susan Sarandon
Susan Sarandonasal
2024-12-31 19:45:18944semak imbas

How to Efficiently Split and Use Input Strings for Dynamic Case Statements?

Memisahkan Rentetan Input

Untuk memisahkan rentetan input (tarikh dan set), kita boleh menggunakan teknik berikut:

  1. Tarikh (p_dates): Gunakan string_to_array() berfungsi untuk mencipta tatasusunan julat tarikh daripada rentetan tarikh. Contohnya:

    SELECT string_to_array('2001-01-01to2001-01-05,2001-01-10to2001-01-15', ',')
  2. Set (p_sets): Begitu juga, gunakan fungsi string_to_array() untuk memisahkan rentetan set kepada tatasusunan nama set. Contohnya:

    SELECT string_to_array('s1,s2,s3,s4', ',')

Menyediakan Penyata Kes Dinamik

Setelah tatasusunan ini dicipta, kita boleh menggunakannya untuk menjana pernyataan kes dinamik menggunakan gabungan pernyataan CASE WHEN dan SELECT. Contohnya:

CASE WHEN given_dates BETWEEN date_ranges[1] AND date_ranges[2] THEN set_names[1]
     WHEN given_dates BETWEEN date_ranges[3] AND date_ranges[4] THEN set_names[2]
     ...
     ELSE NULL
END

Di sini, julat_tarikh dan nama_set ialah tatasusunan yang dicipta daripada p_dates dan p_sets masing-masing.

Pernyataan kes dinamik ini kemudiannya boleh digunakan untuk mengemas kini lajur set_name berdasarkan yang ditentukan julat tarikh dan tetapkan nama.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan dan Menggunakan Rentetan Input untuk Penyata Kes Dinamik dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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