我有一个表,表中包含以下数据
abcd
abcd , pgw
ABcd , Pgw
我想要输出为
Abcd
Abcd , Pgw
Abcd , Pgw
第一个字母大写,“,”后面的字母大写。
最佳答案
要使第一个字母大写,请使用此
select CONCAT(UPPER(LEFT(`field`, 1)), SUBSTRING(`field`, 2)) from mytable
对逗号后的单词也执行此操作,声明一个函数,例如:
DELIMITER ||
CREATE FUNCTION `ucwords`( str VARCHAR(128) ) RETURNS VARCHAR(128) CHARSET latin1
BEGIN
DECLARE c CHAR(1);
DECLARE s VARCHAR(128);
DECLARE i INT DEFAULT 1;
DECLARE BOOL INT DEFAULT 1;
SET s = LCASE( str );
WHILE i < LENGTH( str ) DO
BEGIN
SET c = SUBSTRING( s, i, 1 );
IF c = ',' THEN
SET BOOL = 1;
ELSEIF BOOL=1 THEN
BEGIN
IF c >= 'a' AND c <= 'z' THEN
BEGIN
SET s = CONCAT(LEFT(s,i-1),UCASE(c),SUBSTRING(s,i+1));
SET BOOL = 0;
END;
END IF;
END;
END IF;
SET i = i+1;
END;
END WHILE;
RETURN s;
END ||
DELIMITER ;
并使用
select ucwords(`field`) from mytable
关于mysql - 使用mysql字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239290/