Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengekstrak Elemen Terakhir daripada Rentetan Terpisah-Slash Hadapan dalam SQL?

Bagaimana untuk mengekstrak Elemen Terakhir daripada Rentetan Terpisah-Slash Hadapan dalam SQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-30 13:26:14674semak imbas

How to Extract the Last Element from a Forward-Slash Separated String in SQL?

Mengekstrak Elemen Terakhir daripada Rentetan Pisah dalam Pangkalan Data

Dalam jadual yang terdiri daripada rentetan yang mengandungi berbilang elemen yang dipisahkan oleh garis miring ke hadapan (/), objektif adalah untuk mengekstrak elemen terakhir dari setiap rentetan. Sebagai contoh, diberikan rentetan berikut:

Articles/Search/ArtMID/2681/ArticleID/2218/Diet.aspx
OurStory/MeettheFoodieandtheMD.aspx
TheFood/OurMenu.aspx

Output yang dikehendaki hendaklah:

Diet.aspx
MeettheFoodieandtheMD.aspx
OurMenu.aspx

SQL Approach

Untuk mencapai ini dalam SQL, pertanyaan berikut boleh digunakan:

SELECT SUBSTRING( string , LEN(string) -  CHARINDEX('/',REVERSE(string)) + 2  , LEN(string)  ) FROM SAMPLE;

Pertanyaan ini berfungsi oleh:

  1. Menggunakan fungsi REVERSE() untuk membalikkan rentetan, yang meletakkan elemen terakhir pada permulaan.
  2. Menggunakan CHARINDEX() dengan rentetan terbalik untuk mencari kedudukan yang terakhir /.
  3. Mengira kedudukan permulaan unsur terakhir dengan menolak kedudukan '/' terakhir daripada jumlah panjang rentetan asal dan menambah 2 (untuk mengambil kira kedudukan selepas '/' dan panjang elemen).
  4. Menggunakan fungsi SUBSTRING() untuk mengekstrak elemen terakhir berdasarkan kedudukan permulaan dan panjang yang dikira.

Pendekatan ini berkesan mengekstrak elemen terakhir daripada setiap rentetan dengan membalikkan rentetan, mencari yang terakhir / dan kemudian menggunakan penemuan ini untuk menentukan titik permulaan bagi subrentetan pengekstrakan.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak Elemen Terakhir daripada Rentetan Terpisah-Slash Hadapan 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