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

如何解决ComboBox中同文本不同ID的重复值问题(SQL实现)

解决ComboBox重复文本显示问题

你的核心问题是当前SQL因为id不同,即使description相同,DISTINCT也会返回多条重复文本的记录。以下是两种可行的解决办法:

一、SQL层面去重(优先推荐)

通过GROUP BY按description分组,为每个唯一文本保留一个对应的id(比如取最小或最大的id,根据业务需求选择),修改后的SQL如下:

SELECT MIN(id) as id, description as text 
FROM engine 
WHERE description IS NOT NULL 
GROUP BY description

这样查询结果里每个description只会出现一次,同时保留了合法的id,能满足你依赖MappingRessource.properties生成SQL的逻辑要求。

二、业务代码层去重

如果无法修改SQL,可以在获取数据后通过代码过滤重复项。比如用集合记录已出现的文本,只保留首次出现的条目:
以Java为例:

// 假设EngineItem是封装id和text的实体类
List<EngineItem> rawData = // 从数据库查询到的原始数据
Set<String> existingTexts = new HashSet<>();
List<EngineItem> uniqueData = new ArrayList<>();

for (EngineItem item : rawData) {
    // add方法返回false说明文本已存在,跳过;否则加入去重列表
    if (existingTexts.add(item.getText())) {
        uniqueData.add(item);
    }
}
// 将uniqueData绑定到ComboBox

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:15:30