java - H2数据库中的模糊匹配?

标签 java database h2 string-matching fuzzy-comparison

我只是想知道是否有一种简单的方法可以使用 H2 数据库实现字符串的模糊匹配。 我在数据库中有一个名称列表,我希望能够使用 3 个字符来搜索它们,这些字符可以按照 3 个字符的键入顺序在名称中的任何位置找到。

我不确定这是否可行,但如果可以通过 SQL 而不是 Java 在数据库中完成,那会让生活变得更轻松

最佳答案

你可以使用

select * from test where name like '%xyz%'

另见 documentation of LIKE .

另一种选择是 use SOUNDEX :

select * from test where soundex(name) = soundex('word')

在这两种情况下,都不能使用索引。这意味着如果表中有很多行,查询会很慢,因为必须检查每一行。

关于java - H2数据库中的模糊匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421340/

相关文章:

java - Hibernate/H2 @OneToMany "Referential integrity constraint violation"删除子项?

java - 记录小于批量大小时的数据库批处理模式

php - 如何解决 Laravel 中检查数据库值/变量可用性的问题

mysql - 自动同步本地服务器上的数据库到远程服务器

java - Cassandra-Cli 拒绝连接

h2 - 如何在H2数据库中使用DESC命令?

sql-server - 如何在 H2 中初始化 View

java - 使用给定的可变参数替换模板中的 {0}、{1} .. {n}

java - 从 JAVA 数组列表中打印 bool true 对象

java - 使用 Javascript 和 jOuery 访问 JSON 响应时出错