Mencari Indeks Kedua atau Ketiga Substring dalam MySQL
Apabila bekerja dengan rentetan dalam pangkalan data, selalunya perlu untuk mencari kedudukan daripada subrentetan tertentu. Dalam kes di mana pertanyaan LIKE mudah tidak mencukupi, anda mungkin memerlukan cara untuk mengenal pasti indeks kejadian khusus subrentetan itu dengan tepat.
Masalah:
Anda mempunyai ruang- rentetan dipisahkan dan perlu mengekstrak bahagian tertentu rentetan berdasarkan kedudukan relatifnya. Contohnya, memandangkan rentetan "AAAA BBBB CCCC DDDD EEE," anda mahu mengekstrak subrentetan "CCCC."
Penyelesaian:
MySQL menyediakan fungsi berkuasa yang dipanggil SUBSTRING_INDEX yang membenarkan anda untuk mencari kejadian ke-n bagi subrentetan dalam rentetan yang lebih besar. Untuk mencari ruang kedua (atau ketiga) dalam rentetan, anda boleh menggunakan panggilan SUBSTRING_INDEX bersarang.
<code class="sql">SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(field, ' ', 3), ' ', -1) FROM table</code>
Dalam pertanyaan di atas, panggilan SUBSTRING_INDEX dalaman mengekstrak subrentetan sehingga ruang ketiga dalam lajur medan , memberikan anda "AAAA BBBB CCCC." Panggilan SUBSTRING_INDEX luar kemudian mengasingkan subrentetan selepas ruang ketiga itu, yang dalam kes ini ialah "CCCC."
Dengan menyarangkan berbilang panggilan SUBSTRING_INDEX, anda boleh terus mengenal pasti kejadian seterusnya bagi pembatas dan mengekstrak subrentetan yang dikehendaki sebagai diperlukan. Fungsi serba boleh ini menyediakan cara yang mudah dan cekap untuk mengendalikan tugas manipulasi rentetan yang kompleks dalam MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Kejadian Kedua atau Ketiga Substring dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!