Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengekstrak Substrings daripada Rentetan Terhad dalam MySQL?

Bagaimana untuk Mengekstrak Substrings daripada Rentetan Terhad dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2024-11-27 16:43:14730semak imbas

How to Extract Substrings from a Delimited String in MySQL?

Pengekstrakan Substring MySQL menggunakan Pembatas

Mengekstrak subrentetan daripada rentetan dalam MySQL boleh dicapai menggunakan fungsi SUBSTRING_INDEX. Fungsi ini membolehkan anda menentukan pembatas untuk memisahkan subrentetan dan kedudukan subrentetan yang anda ingin keluarkan.

Sebagai contoh, pertimbangkan jadual berikut:

item_code name colors
102 ball red,yellow,green
104 balloon yellow,orange,red

Untuk mengekstrak warna sebagai subrentetan berasingan, anda boleh menggunakan pertanyaan berikut:

SELECT item_code, name, 
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) AS color_first,
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) AS color_second
FROM Product;

Fungsi SUBSTRING_INDEX digunakan dua kali dalam pertanyaan ini. Kali pertama ia digunakan untuk mencari subrentetan pertama, dan kali kedua ia digunakan untuk mengeluarkan subrentetan yang tinggal daripada hasil aplikasi pertama.

Output yang terhasil adalah seperti berikut:

item_code name color_first color_second
102 ball red yellow
104 balloon yellow orange

Perhatikan bahawa versi pertanyaan yang lebih verbose yang mengambil semua subrentetan ialah:

SELECT item_code, name, 
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) AS color_first,
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) AS color_second,
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 3), ',', -1) AS color_third
FROM Product;

Ini lebih lama pertanyaan mendapatkan semula semua subrentetan daripada medan warna, menggunakan corak yang sama seperti pertanyaan yang lebih pendek.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Substrings daripada Rentetan Terhad dalam MySQL?. 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