Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengekstrak Substring Antara Dua Pembatas dengan betul dalam 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!