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

数据库列合并:如何合并词典库中同单词的多条释义

合并词典数据库中同一单词的释义

嘿,这个合并同词释义的需求很典型,用SQL就能完美解决!根据你使用的数据库类型,我整理了几种常用的实现方案,你可以直接套用:

方案1:MySQL(5.7及以上版本)

MySQL自带的GROUP_CONCAT函数可以轻松聚合字符串,配合窗口函数生成新的连续ID:

SELECT 
    ROW_NUMBER() OVER (ORDER BY word) AS new_id,
    word,
    GROUP_CONCAT(meaning SEPARATOR ',') AS combined_meanings
FROM your_dictionary_table
GROUP BY word
ORDER BY new_id;
  • ROW_NUMBER() OVER (ORDER BY word):按单词排序生成新的连续ID
  • GROUP_CONCAT(meaning SEPARATOR ','):把同一单词的所有释义用逗号拼接起来
  • 记得把your_dictionary_table替换成你实际的表名

方案2:PostgreSQL

PostgreSQL使用STRING_AGG来做字符串聚合,还能指定释义的拼接顺序:

SELECT 
    ROW_NUMBER() OVER (ORDER BY word) AS new_id,
    word,
    STRING_AGG(meaning, ',' ORDER BY meaning) AS combined_meanings
FROM your_dictionary_table
GROUP BY word
ORDER BY new_id;

这里ORDER BY meaning可以让释义按一定顺序拼接,如果你不需要排序可以去掉这部分。

方案3:SQLite

SQLite同样支持GROUP_CONCAT函数,写法和MySQL类似:

SELECT 
    ROW_NUMBER() OVER (ORDER BY word) AS new_id,
    word,
    GROUP_CONCAT(meaning, ',') AS combined_meanings
FROM your_dictionary_table
GROUP BY word
ORDER BY new_id;

兼容老版本数据库(比如MySQL 5.6及以下)

如果你的数据库不支持窗口函数,可以用变量来生成新ID:

SET @row_num = 0;
SELECT 
    (@row_num := @row_num + 1) AS new_id,
    word,
    GROUP_CONCAT(meaning SEPARATOR ',') AS combined_meanings
FROM your_dictionary_table
GROUP BY word
ORDER BY new_id;

运行以上SQL后,就能得到你想要的格式:同一单词的所有释义合并成一行,并且生成新的连续ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:58:32