首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数据库中的所有值中使用查询将字母的首字母大写为大写

问在数据库中的所有值中使用查询将字母的首字母大写为大写
EN

Stack Overflow用户
提问于 2018-07-07 09:43:50
回答 1查看 119关注 0票数 1

如果我写这个查询,我在数据库中有一行。

代码语言:javascript
复制
select * from table1;

下面的查询将提供所需的结果

代码语言:javascript
复制
james anderson
stuart broad

我能问一下这个单词的第一个字母在大写字母中的位置吗?

也就是说,输出必须是

James Anderson

Stuart B道

已尝试使用以下查询

代码语言:javascript
复制
UPDATE people_table SET full_name = CONCAT(UPPER(SUBSTR(full_name,1,1)),LOWER(SUBSTR(full_name,2)));

此查询只生成大写行的第一个单词。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-07 10:24:08

我以前遇到过这样的事情,它被称为INITCAP函数。

它不是内置的函数,而是一些mysql示例的check this link out。

粘贴了下面的解决方案:

代码语言:javascript
复制
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 ;

用法:

代码语言:javascript
复制
select initcap('This is test string');

我假设您熟悉用户定义的函数,但是要在更新中使用它,应该是这样的:

代码语言:javascript
复制
update myTable set name = initcap(name) where ...

希望这能帮上忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51221902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档