gpt4 book ai didi

Mysql提取特定列中每个单词的首字母

转载 作者:行者123 更新时间:2023-11-29 04:02:49 25 4
gpt4 key购买 nike

我想在表格中创建一个首字母缩略词列。我想从“名称”列中获取每个单词的第一个字母,将其大写,然后将所有字母连接成一个“首字母缩略词”列。

有什么简单的方法可以抓取第一个字母吗?

最佳答案

这是一个“改进”的功能,允许通过正则表达式只过滤想要的字符。

  • 函数 initials 完成实际工作,您必须指定正则表达式
  • 函数 acronym 只保留字母数字字符

(如有必要,在输出上使用 upperlowerucase 函数).

delimiter $$
drop function if exists `initials`$$
CREATE FUNCTION `initials`(str text, expr text) RETURNS text CHARSET utf8
begin
declare result text default '';
declare buffer text default '';
declare i int default 1;
if(str is null) then
return null;
end if;
set buffer = trim(str);
while i <= length(buffer) do
if substr(buffer, i, 1) regexp expr then
set result = concat( result, substr( buffer, i, 1 ));
set i = i + 1;
while i <= length( buffer ) and substr(buffer, i, 1) regexp expr do
set i = i + 1;
end while;
while i <= length( buffer ) and substr(buffer, i, 1) not regexp expr do
set i = i + 1;
end while;
else
set i = i + 1;
end if;
end while;
return result;
end$$

drop function if exists `acronym`$$
CREATE FUNCTION `acronym`(str text) RETURNS text CHARSET utf8
begin
declare result text default '';
set result = initials( str, '[[:alnum:]]' );
return result;
end$$
delimiter ;

示例 1:

select acronym('Come Again? That Cant Help!');

输出:

CATCH

例子2:

select initials('Come Again? That Cant Help!', '[aeiou]');

输出:

oeAaaae

关于Mysql提取特定列中每个单词的首字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8672815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com