MySQL 提供 INSTR() 函数来识别字符串中子字符串的第一个实例。然而,找到最后一个出现的位置是一个挑战,因为没有专门用于此目的的内置函数。
解决方案:
MySQL 提供了另一种方法来完成此任务使用 LOCATE 函数和 REVERSE 函数,如下所示:
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);
要查找最后一次出现后的子字符串,请考虑 SUBSTRING_INDEX 函数:
SELECT SUBSTRING_INDEX("first_middle_last", '_', -1);
此表达式将生成子字符串 "最后。”
以上是如何在 MySQL 中查找子字符串最后一次出现的位置?的详细内容。更多信息请关注PHP中文网其他相关文章!