Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Indeks terakhir dari substring yang diberikan di MySQL

@Marc B sudah dekat. Di MySQL, pernyataan berikut mengembalikan 12:

SELECT CHAR_LENGTH("Have_a_good_day") - LOCATE('_', REVERSE("Have_a_good_day"))+1;

Mengantisipasi kemungkinan penggunaan nilai, pernyataan berikut mengekstrak bagian kiri string sebelum garis bawah terakhir (yaitu, _):

SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last")));

Hasilnya adalah "first_middle". Jika Anda ingin menyertakan pembatas, gunakan:

SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last"))+1);

Akan lebih baik jika mereka meningkatkan LOCATE untuk memiliki opsi untuk memulai pencarian dari kanan.

Jika Anda menginginkan bagian kanan string setelah spasi terakhir, solusi yang lebih baik adalah:

SELECT SUBSTRING_INDEX("first_middle_last", '_', -1);

Ini mengembalikan "terakhir".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. #1139 - Mendapat kesalahan 'operator operator pengulangan tidak valid' dari regexp

  2. Skema basis data sistem pesan

  3. Bagaimana cara memuat tabel ke dalam kumpulan buffer INNODB dengan MySQL?

  4. Mencocokkan catatan dari dua tabel

  5. mysql pilih tanggal dalam rentang 30 hari