【问题标题】:Unable to use LIKE function in android无法在android中使用LIKE功能
【发布时间】:2013-02-16 03:22:40
【问题描述】:

我无法让这条 sql 语句正常工作。有人可以帮助我吗?

public Cursor getContactMatches(String query, String[] columns) 
{
    String selection = COL_NAME + " LIKE " + "'%" + "%'"; <---- right here
    Log.d("selection", selection);
    String[] selectionArgs = new String[] {query+"*"};

    return query(selection, selectionArgs, columns);
}

【问题讨论】:

  • select * from your_table where some_column like ( '%foobar%' ) 我认为您缺少()foobar。做select * from your_table where some_column LIKE '%%' 没有任何意义。
  • 所以 foobar 不是一些随机的东西吗?你真的把它放在声明中了吗?
  • 不,您没有指定要比较的值是什么

标签: android sql search


【解决方案1】:

你没有传入要比较的值

String selection = COL_NAME + " LIKE " + "'%" + yourvalue + "%'"; <---- right here

【讨论】:

  • 那么我会使用查询参数吗?
  • 不,你会传递你试图找到的值。
【解决方案2】:

如果您想使用选择参数,那么您的选择字符串不应包含任何引号或 % 字符。除非您在数据库上运行原始 sql 查询,否则查询字符串将自动正确地进行 sql 转义。像下面的 sn-p 之类的东西应该可以完成工作。

String selection = COL_NAME + " LIKE ?";
String[] selectionArgs = new String[] {query+"*"};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多