如何对Sqlite数据库引擎进行区分大小写的搜索? “COLLATE”附近的错误:

时间:2012-01-19 06:17:28

标签: android sqlite

  1. 我正在使用此查询...

      

    Cursor cursor = 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:near“COLLATE”:语法错误:,同时编译:SELECT * FROM tablename ORDER BY COLLATE BINARY;

  3. 在我的Sqlite数据库中,我已经使用COLLATE BINARY执行了该列。所以,请帮我解决这个问题。谢谢V.K。

4 个答案:

答案 0 :(得分:1)

变化

 COLLATE BINARY  to      COLLATE_BINARY

 "col like " + "\""+ fetchingstring + "%" + "\""  TO  "col like '"+ fetchingstring + "%'"

答案 1 :(得分:0)

根据Sqlite的文档,你应该创建一个带有整理单词的数据库......

PL。请参阅文档here

答案 2 :(得分:0)

我认为sqlite期望ORDER BY和COLLATE之间的列名。也许你可以尝试这样的事情:

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

假设col是您表格中的有效列。

答案 3 :(得分:0)

只需使用glob而不是喜欢使搜索区分大小写..

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

使用相同的查询,我们可以在sqlite中使搜索区分大小写。

相关问题