MySQL menyediakan fungsi INSTR() untuk mengenal pasti tika pertama subrentetan dalam rentetan. Walau bagaimanapun, mencari kejadian terakhir menimbulkan cabaran kerana tiada fungsi terbina dalam yang dikhaskan semata-mata untuk tujuan ini.
Penyelesaian:
MySQL menawarkan kaedah alternatif untuk dicapai tugas ini menggunakan fungsi LOCATE dan fungsi REVERSE, seperti yang ditunjukkan di bawah:
SELECT CHAR_LENGTH("Have_a_good_day") - LOCATE('_', REVERSE("Have_a_good_day"))+1;
Ungkapan ini mengira yang terakhir kedudukan indeks subrentetan yang ditentukan, yang dalam contoh ini ialah garis bawah (_).
Untuk mendapatkan subrentetan sebelum kejadian terakhir, gunakan:
SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last")));
Ini akan mengembalikan rentetan " pertama_tengah." Untuk memasukkan pembatas, laraskan pertanyaan seperti berikut:
SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last"))+1);
Untuk mencari subrentetan selepas kejadian terakhir, pertimbangkan fungsi SUBSTRING_INDEX:
SELECT SUBSTRING_INDEX("first_middle_last", '_', -1);
Ungkapan ini akan menghasilkan subrentetan " terakhir."
Atas ialah kandungan terperinci Bagaimana untuk Mencari Kejadian Terakhir Substring dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!