首页 > 解决方案 > SQLite replace() 指定字符和下一个字符

问题描述

我有一个带有Username列的数据库。

有多个部分符号后跟数字§#来格式化名称。

我必须确保所有名称都是唯一的,但我想忽略格式化字符对。

我打算用,

SELECT * FROM Users WHERE replace(lower(Username),'§%','') = 'name';

但我意识到这会寻找百分号而不是作为通配符。我真的可以使用一些帮助。

标签: sqlite

解决方案


在比较之前使用INSTR和的组合来隔离名称:SUBSTR

SELECT *
FROM Users
WHERE LOWER(SUBSTR(Username, 1, INSTR(Username, '§%') - 1)) = 'name';

推荐阅读