Как мне найти часть строки в sqlite3? - PullRequest
2 голосов
/ 23 января 2012

Я хочу создать поиск для одной из моих таблиц sqlite3. С комбинацией текстового поля или раскрывающегося списка поиск должен начинаться после ввода 3 букв и должен возвращать некоторые рекомендации, которые он нашел в таблице. По крайней мере, это идея.

На данный момент я застрял в поиске части строки в базе данных.

"SELECT * FROM album WHERE artist='Audiosl'"

Это возвращает пустой поиск, а также

"SELECT * FROM album WHERE artist LIKE 'Audiosl'"

Есть ли способ сделать это?

Ответы [ 3 ]

3 голосов
/ 23 января 2012

"SELECT * FROM album WHERE artist LIKE '%Audiosl%'" выполнит вашу задачу.

Поиск строки типа T Audios1, Audios123, T Audios123 и т. Д.

См. Больше: http://www.sqlite.org/lang_expr.html

1 голос
/ 23 января 2012

Подробнее об использовании оператора SQLite LIKE. Это превратит ваше утверждение в следующее:

SELECT * FROM album WHERE artist LIKE 'Aud%'"

% соответствует нулю или более вхождений. В документации по SQLite есть и другие операторы.

0 голосов
/ 23 января 2012

SQLite включает в себя официальное расширение для полнотекстового поиска , которое обеспечивает функциональность, подходящую для большого количества текстовых полей, как предполагает ваша схема.Вы можете выполнять поиск в стиле поля (artist:*a* album:"greatest hits") plus all the other stuff you would expect (NEAR, AND, OR, exclusions).

. Я настоятельно рекомендую использовать это расширение вместо создания собственных запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...