首页 > 解决方案 > 带有额外字符的 SQLite 模式匹配

问题描述

我的数据库包含这些行:

杜佩奇

圣约翰

我可以使用哪些查询来匹配输入“Du Page”或“SaintJohn”的人:换句话说:添加一个不应该存在的额外字符(在任何位置),或删除一个字符(在任何位置)应该在那里?

第一个示例有一个可能的解决方法:我可以在搜索表格之前从“Du Page”输入中删除空格字符,但我不能对第二个示例执行此操作,除非有某种方式说“匹配”SaintJohn已删除所有空格的数据库文本”,或者“匹配一个数据库行,该行的某处包含“SaintJohn”中的每个字母。

标签: regexsqlitepattern-matching

解决方案


从列和搜索文本中删除空格:

select * from tablename
where replace(textcolumn, ' ', '') like '%' || replace('<your search string>', ' ', '') || '%'

推荐阅读