Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengekstrak Substring Antara Dua Pembatas dengan betul dalam SQL?

Bagaimana untuk Mengekstrak Substring Antara Dua Pembatas dengan betul dalam SQL?

Susan Sarandon
Susan Sarandonasal
2024-12-26 19:27:11863semak imbas

How to Correctly Extract a Substring Between Two Delimiters in SQL?

Mengambil Rentetan Antara Pembatas Yang Dikenali Menggunakan SQL

Dalam senario pangkalan data, selalunya perlu untuk mengekstrak subrentetan tertentu daripada rentetan yang lebih besar berdasarkan pembatas yang diketahui. Sebagai contoh, anda mungkin perlu mengasingkan sebahagian teks antara dua rentetan yang diberikan.

Satu pendekatan biasa ialah menggunakan fungsi SUBSTRING. Walau bagaimanapun, ralat biasa apabila menggunakan fungsi ini ialah memasukkan indeks rentetan pertama yang diketahui dalam pengiraan panjang untuk subrentetan.

Untuk mendapatkan semula subrentetan antara dua pembatas dengan betul, pengiraan berikut diperlukan:

CHARINDEX(second_delimiter, @Text) - CHARINDEX(first_delimiter, @Text) + Length(second_delimiter)

Formula ini memastikan bahawa subrentetan yang diambil bermula dengan pembatas pertama dan berakhir dengan yang kedua pembatas.

Sebagai contoh, pertimbangkan pertanyaan berikut:

SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text),
CHARINDEX('immediately', @Text) - CHARINDEX('the dog', @Text) + LEN('immediately'))

Dalam pertanyaan ini, @Text mewakili rentetan input. Dengan menyatakan rentetan yang diketahui "anjing" dan "dengan serta-merta", pertanyaan mendapatkan semula subrentetan dengan tepat "anjing itu sangat teruk dan memerlukan hukuman berat serta-merta."

Dengan membetulkan pengiraan panjang subrentetan, anda boleh dengan berkesan ekstrak bahagian teks tertentu dalam rentetan yang lebih besar menggunakan SQL.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Substring Antara Dua Pembatas dengan betul dalam SQL?. 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