MySQL fournit la fonction INSTR() pour identifier la première instance d'une sous-chaîne dans une chaîne. Cependant, trouver la dernière occurrence pose un défi car il n'existe pas de fonction intégrée dédiée uniquement à cet effet.
Solution :
MySQL propose une méthode alternative pour accomplir cette tâche en utilisant la fonction LOCATE et la fonction REVERSE, comme démontré ci-dessous :
SELECT CHAR_LENGTH("Have_a_good_day") - LOCATE('_', REVERSE("Have_a_good_day"))+1;
Cette expression calcule la dernière position d'index de la sous-chaîne spécifiée, qui dans cet exemple est le trait de soulignement (_).
Pour obtenir la sous-chaîne avant la dernière occurrence, utilisez :
SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last")));
Cela renverra la chaîne "first_middle". Pour inclure le délimiteur, ajustez la requête comme suit :
SELECT LEFT("first_middle_last", CHAR_LENGTH("first_middle_last") - LOCATE('_', REVERSE("first_middle_last"))+1);
Pour localiser la sous-chaîne après la dernière occurrence, considérez la fonction SUBSTRING_INDEX :
SELECT SUBSTRING_INDEX("first_middle_last", '_', -1);
Cette expression donnera la sous-chaîne " dernier."
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!