Как сделать поиск с учетом регистра для базы данных Sqlite? Ошибка рядом с «COLLATE»: - PullRequest
0 голосов
/ 19 января 2012
  1. Я использую этот запрос ...

    Курсорный курсор = sqliteDb.query (DB_Table, null, "col like" + "\" "+ fetchingstring +"% "+" \ "", null, null, null, "COLLATE BINARY");

  2. И когда я выполняю поиск, выдается ошибка:

    01-19 11: 13: 29.134: E / AndroidRuntime (1707): android.database.sqlite.SQLiteException: около «COLLATE»: синтаксическая ошибка: при компиляции: SELECT * FROM имя таблицы ORDER BYCOLLATE BINARY;

  3. В моей базе данных Sqlite я уже сделал столбец с COLLATE BINARY.Поэтому, пожалуйста, помогите мне, где я не так с этим.Спасибо VK

Ответы [ 4 ]

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

изменение

 COLLATE BINARY  to      COLLATE_BINARY

и

 "col like " + "\""+ fetchingstring + "%" + "\""  TO  "col like '"+ fetchingstring + "%'"
0 голосов
/ 04 мая 2012

Просто используйте glob вместо like, чтобы сделать поиск чувствительным к регистру ..

 Cursor cursor = sqliteDb.query(MY_DB_Table_Name, null, "col glob"+ "*" + "\"" + fetchingstring + "*" + "\"", null, null, null, null);

Используя этот же запрос, мы можем сделать поиск чувствительным к регистру в sqlite.

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

Я думаю, что sqlite ожидает имя столбца между ORDER BY и COLLATE. Может быть, вы можете попробовать что-то вроде этого:

Cursor cursor = sqliteDb.query(DB_Table, null, "col like " + "\"" + fetchingstring + "%" + "\"", null, null, null, "col COLLATE BINARY");

Предполагается, что col является допустимым столбцом в вашей таблице.

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

В соответствии с документом Sqlite, вы должны были создать БД с сопоставлением слова ...

Pl.Смотрите документ здесь .

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