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

MySQL查询交换两字段顺序拼接为name列的实现方法

MySQL查询实现逗号分隔姓名顺序翻转

需求说明

现有存储格式为firstname,lastname的姓名数据,示例如下:

firstname1,lastname1
firstname2,lastname2
firstname3,lastname3
firstname4,lastname4

需要编写SELECT语句,将姓名顺序交换为lastname,firstname格式,返回列名为name的结果集,期望输出:

name
lastname1,firstname1
lastname2,firstname2
lastname3,firstname3
lastname4,firstname4

实现方案

直接使用MySQL内置字符串函数处理即可,核心用到两个函数:

  • SUBSTRING_INDEX(str, delim, count):按指定分隔符拆分字符串,count为正数时取分隔符前第count段,为负数时取分隔符后倒数第count段
  • CONCAT(str1, str2, ...):按顺序拼接多个字符串

假设原始姓名数据存储在表user_info的raw_name字段中,查询语句如下:

SELECT
  CONCAT(
    SUBSTRING_INDEX(raw_name, ',', -1),
    ',',
    SUBSTRING_INDEX(raw_name, ',', 1)
  ) AS name
FROM user_info;

语句逻辑说明:

  1. SUBSTRING_INDEX(raw_name, ',', -1)提取逗号后半段的lastname内容
  2. SUBSTRING_INDEX(raw_name, ',', 1)提取逗号前半段的firstname内容
  3. 将lastname、逗号、firstname按顺序拼接,别名设置为要求的name即可得到目标结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:12:21