android 字符串通配符,Android SQLite通配符

在Android应用中,当尝试使用SQLite数据库进行模糊查询时,遇到一个问题,即通配符元素没有正确工作。原始代码使用了等号(=)而非LIKE运算符,导致通配符(%)被当作实际查询内容。解决方案是将查询语句中的=替换为LIKE,以便百分号能作为通配符使用,允许在变量中搜索任何位置的元素。修正后的查询能够正确执行模糊匹配。

我正在尝试使用通配符元素来搜索我的SQLite表,以查找在特定变量中任何位置具有元素的条目.

public String[] getCheckoutEntry(String title, String ISBN)

{

//Wild card Syntax

String titleWildCard = "%" + title + "%";

String ISBNWildCard = "%" + ISBN + "%";

//Query

String query = "select USER,AUTHOR,DATE,CALL_NUMBER,COUNT from CHECKOUT where TITLE = ? or ISBN = ? ";

String[] selectionArgs = new String[] {titleWildCard, ISBNWildCard};

Cursor cursor = db.rawQuery(query, selectionArgs);

我已经在Stack Overflow上检查了六个答案,并且每个人都建议只在我的变量上附加一个“%”,如上所示.当我尝试上面的代码时,我的程序只是解释了titleWildCard,包括%作为搜索查询,并尝试在表中找到%.

如果我取出“%”,那么程序运行没有问题,只是它只搜索确切的术语.

解决方法:

使用LIKE替换=运算符使%表现得像通配符:

... where TITLE LIKE ? or ISBN LIKE ?

标签:android,sqlite,android-sqlite

来源: https://codeday.me/bug/20190825/1717667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值