regex - 带有额外字符的 SQLite 模式匹配
问题描述
我的数据库包含这些行:
杜佩奇
圣约翰
我可以使用哪些查询来匹配输入“Du Page”或“SaintJohn”的人:换句话说:添加一个不应该存在的额外字符(在任何位置),或删除一个字符(在任何位置)应该在那里?
第一个示例有一个可能的解决方法:我可以在搜索表格之前从“Du Page”输入中删除空格字符,但我不能对第二个示例执行此操作,除非有某种方式说“匹配”SaintJohn已删除所有空格的数据库文本”,或者“匹配一个数据库行,该行的某处包含“SaintJohn”中的每个字母。
解决方案
从列和搜索文本中删除空格:
select * from tablename
where replace(textcolumn, ' ', '') like '%' || replace('<your search string>', ' ', '') || '%'
推荐阅读
- docker - docker run 与 conda 环境交互已激活
- ruby-on-rails - 操作文本附件不适用于生产
- scala - 在函数中使用“_”与scala中的方法
- spring-boot - 如何用弹簧靴启动千分尺?
- graphql - elastic APM 和 NestJS 不区分 graphql 查询
- javascript - 有效地查找字符串是否包含单词列表中的匹配项?
- c# - 使用 OptGroup 创建 DropDownList
- c - 链接列表和 pthread 的问题
- docker - 如何使`docker-compose up $container_name`不仅附加到$container_name,而且附加到它所依赖的所有容器?
- windows - 用于 Ping 计算机的 PowerShell 脚本有效但出现错误