You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中为带空格的公司名称生成首字母缩写

MySQL生成公司名称首字母缩写方案

针对1-5个单词组成的空格分隔公司名称,可通过自定义MySQL函数提取每个单词首字母并生成大写缩写,示例如下:

自定义函数实现

DELIMITER //

CREATE FUNCTION get_company_abbrev(company_name VARCHAR(255)) 
RETURNS VARCHAR(5)
DETERMINISTIC
BEGIN
    DECLARE abbrev VARCHAR(5) DEFAULT '';
    DECLARE remaining_str VARCHAR(255) DEFAULT company_name;
    DECLARE current_word VARCHAR(255);
    
    -- 提取第一个单词首字母
    IF LOCATE(' ', remaining_str) > 0 THEN
        SET current_word = LEFT(remaining_str, LOCATE(' ', remaining_str) - 1);
        SET abbrev = CONCAT(abbrev, UPPER(LEFT(current_word, 1)));
        SET remaining_str = SUBSTRING(remaining_str, LOCATE(' ', remaining_str) + 1);
    ELSE
        SET abbrev = CONCAT(abbrev, UPPER(LEFT(remaining_str, 1)));
        RETURN abbrev;
    END IF;
    
    -- 提取第二个单词首字母
    IF LOCATE(' ', remaining_str) > 0 THEN
        SET current_word = LEFT(remaining_str, LOCATE(' ', remaining_str) - 1);
        SET abbrev = CONCAT(abbrev, UPPER(LEFT(current_word, 1)));
        SET remaining_str = SUBSTRING(remaining_str, LOCATE(' ', remaining_str) + 1);
    ELSE
        SET abbrev = CONCAT(abbrev, UPPER(LEFT(remaining_str, 1)));
        RETURN abbrev;
    END IF;
    
    -- 提取第三个单词首字母
    IF LOCATE(' ', remaining_str) > 0 THEN
        SET current_word = LEFT(remaining_str, LOCATE(' ', remaining_str) - 1);
        SET abbrev = CONCAT(abbrev, UPPER(LEFT(current_word, 1)));
        SET remaining_str = SUBSTRING(remaining_str, LOCATE(' ', remaining_str) + 1);
    ELSE
        SET abbrev = CONCAT(abbrev, UPPER(LEFT(remaining_str, 1)));
        RETURN abbrev;
    END IF;
    
    -- 提取第四个单词首字母
    IF LOCATE(' ', remaining_str) > 0 THEN
        SET current_word = LEFT(remaining_str, LOCATE(' ', remaining_str) - 1);
        SET abbrev = CONCAT(abbrev, UPPER(LEFT(current_word, 1)));
        SET remaining_str = SUBSTRING(remaining_str, LOCATE(' ', remaining_str) + 1);
    ELSE
        SET abbrev = CONCAT(abbrev, UPPER(LEFT(remaining_str, 1)));
        RETURN abbrev;
    END IF;
    
    -- 提取第五个单词首字母
    SET abbrev = CONCAT(abbrev, UPPER(LEFT(remaining_str, 1)));
    RETURN abbrev;
END //

DELIMITER ;

使用方法

在查询中调用函数即可生成缩写:

-- 替换your_table为实际表名,company_name为存储公司名称的字段名
SELECT company_name, get_company_abbrev(company_name) AS company_abbrev FROM your_table;

说明

  • 函数自动处理1-5个单词的名称,单词数不足5个时会提前终止并返回对应长度的缩写
  • 所有首字母自动转为大写,符合示例中的格式要求

内容的提问来源于stack exchange,提问作者Johnny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:55:06