2012-02-23 2 views
1

Мне просто интересно, был ли простой способ реализовать нечеткое сопоставление строк с использованием базы данных H2. У меня есть в базе данных список имен, и я хочу, чтобы их можно было искать через 3 символа, которые могут быть найдены любым именем, в том порядке, в котором набираются 3 символа.Нечеткое соответствие в базе данных H2?

Я не уверен если это еще возможно сделать, но это сделало бы жизнь намного проще, если бы можно было сделать в базе данных с помощью SQL, а не Java

ответ

2

Вы можете использовать

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

Смотрите также documentation of LIKE.

Другой вариант заключается в use SOUNDEX:

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

В обоих случаях индекс не может быть использован. Это означает, что запрос медленный, если в таблице много строк, так как каждая строка должна быть проверена.

+0

Спасибо, Это действительно помогает! –