Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengekstrak Nama Pertama, Tengah, dan Akhir daripada String dalam MySQL?

Bagaimana untuk mengekstrak Nama Pertama, Tengah, dan Akhir daripada String dalam MySQL?

Susan Sarandon
Lepaskan: 2025-01-19 15:42:08
asal
980 orang telah melayarinya

How to Extract First, Middle, and Last Names from a String in MySQL?

Ekstrak nama pertama, nama tengah dan nama keluarga daripada medan rentetan dalam MySQL

Memisahkan rentetan nama kepada nama pertama, tengah dan akhir ialah tugas biasa dalam pemprosesan data. MySQL menyediakan pelbagai fungsi untuk tujuan ini.

Kaedah 1: Asingkan nama pertama, nama tengah dan nama keluarga

Kaedah ini menggunakan fungsi SUBSTRING_INDEX dan LENGTH untuk mengekstrak setiap bahagian nama:

<code class="language-sql">SELECT
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
   IF(LENGTH(fullname) - LENGTH(REPLACE(fullname, ' ', '')) > 1,
       SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 2), ' ', -1), NULL)
       AS middle_name,
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 3), ' ', -1) AS last_name
FROM registeredusers;</code>
Salin selepas log masuk

Penerangan:

  • SUBSTRING_INDEX(fullname, ' ', 1) Mengeluarkan bahagian rentetan sehingga ruang pertama.
  • SUBSTRING_INDEX(..., ' ', -1) Dapatkan semula elemen terakhir daripada rentetan ini, dengan memberikan nama.
  • IF Menyemak sama ada rentetan mengandungi berbilang ruang (menunjukkan kehadiran nama tengah).
  • SUBSTRING_INDEX(..., ' ', 2) Kemudian asingkan bahagian yang mengandungi nama tengah dan nama keluarga.
  • SUBSTRING_INDEX(..., ' ', -1) Mengekstrak bahagian terakhir rentetan, memberikan nama akhir.

Kaedah 2: Asingkan nama pertama dan nama keluarga

Jika nama tengah dianggap sebahagian daripada nama keluarga, anda boleh menggunakan kaedah ini:

<code class="language-sql">SELECT
   SUBSTRING_INDEX(SUBSTRING_INDEX(fullname, ' ', 1), ' ', -1) AS first_name,
    TRIM(SUBSTR(fullname, LOCATE(' ', fullname))) AS last_name
FROM registeredusers;</code>
Salin selepas log masuk

Penerangan:

  • SUBSTRING_INDEX(fullname, ' ', 1) Mengeluarkan bahagian rentetan sehingga ruang pertama, memberikan nama.
  • LOCATE(' ', fullname) Cari kedudukan ruang pertama.
  • SUBSTR(fullname, ...), bermula dari LOCATE, mendapatkan semula rentetan yang lain, termasuk nama tengah dan akhir.
  • TRIM Alih keluar sebarang ruang hadapan atau belakang.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak Nama Pertama, Tengah, dan Akhir daripada String dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan