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

SQLite如何查找与输入字符串最长匹配前缀的表行?

解决SQLite最长前缀匹配问题

直接用以下SQL语句就能实现需求:

SELECT StringBeginning, Score
FROM beginnings
WHERE 'ABC_Michael_A_V1.3_Update' LIKE StringBeginning || '%'
ORDER BY LENGTH(StringBeginning) DESC
LIMIT 1;

逻辑说明

  • 匹配条件:'输入字符串' LIKE StringBeginning || '%' 用来筛选所有能作为输入字符串前缀的StringBeginning——||是SQLite的字符串拼接符,StringBeginning || '%'表示以该前缀开头的任意字符串,输入字符串满足这个模式即说明前缀匹配。
    • 如果需要区分大小写的匹配,把LIKE换成GLOB即可:'ABC_Michael_A_V1.3_Update' GLOB StringBeginning || '*'
  • 排序取最长:用LENGTH(StringBeginning)获取前缀长度,按降序排序后取第一行,就是匹配长度最长的结果。

特殊情况处理

如果存在多个长度相同的最长前缀,想优先取分数高的,可修改排序规则:

SELECT StringBeginning, Score
FROM beginnings
WHERE 'ABC_Michael_A_V1.3_Update' LIKE StringBeginning || '%'
ORDER BY LENGTH(StringBeginning) DESC, Score DESC
LIMIT 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:01:11