如何在MySQL中实现initcap功能?

我需要用于区域名称的initcap功能。有什么办法可以在MySQL中实现呢?

  • 非洲
  • 印度次大陆
  • 美国西海岸
  • 欧洲/英国

这样结果可以吗?有什么建议么?提前致谢。

回答:

有时候我在MySQL中寻找内置的initcap /

ucfirst函数,但不幸的是找不到这样的字符串函数,所以决定写我自己的..感谢MySQL社区成员纠正了我函数中的错误并将其发布回去。

DELIMITER $$

DROP FUNCTION IF EXISTS `test`.`initcap`$$

CREATE FUNCTION `initcap`(x char(30)) RETURNS char(30) CHARSET utf8

BEGIN

SET @str='';

SET @l_str='';

WHILE x REGEXP ' ' DO

SELECT SUBSTRING_INDEX(x, ' ', 1) INTO @l_str;

SELECT SUBSTRING(x, LOCATE(' ', x)+1) INTO x;

SELECT CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(@l_str,1,1)),LOWER(SUBSTRING(@l_str,2)))) INTO @str;

END WHILE;

RETURN LTRIM(CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(x,1,1)),LOWER(SUBSTRING(x,2)))));

END$$

DELIMITER ;

Usage:

select initcap('This is test string');

以上是 如何在MySQL中实现initcap功能? 的全部内容, 来源链接: utcz.com/qa/419952.html

回到顶部