Mysql
 sql >> база данни >  >> RDS >> Mysql

Последен индекс на даден подниз в MySQL

@Marc B беше близо. В MySQL следният оператор връща 12:

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

Предвидявайки възможна употреба на стойността, следното изявление извлича лявата част на низа преди последното долно подчертаване (т.е. _):

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

Резултатът е "first_middle". Ако искате да включите разделителя, използвайте:

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

Би било хубаво, ако подобрят LOCATE, за да имат опция за започване на търсенето отдясно.

Ако искате дясната част от низа след последния интервал, по-добро решение е:

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

Това връща "последно".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ОПТИМИЗИРА всички таблици?

  2. Как да преименувам външен ключ в mysql?

  3. Как да изберете записи от последните 3 минути от MySQL с PHP

  4. Как да върнете таблица от MySQL функция

  5. Изберете записи от днес, тази седмица, този месец php mysql