[英]Check if column string in database is a substring of a query in sqlite
当前的Sqlite语法可以检查查询是否是列字符串的子字符串。 我可以做一个黑客,以在%后面添加%。 在https://stackoverflow.com/a/5752671/908821中描述
final String whereClause = DbHelper.COLUMN_URL + " LIKE ? " ;
有没有我可以做相反的语法? 我想检查列字符串是否是查询的子字符串。
以下代码似乎无效。
final String whereClause = "? LIKE " + DbHelper.COLUMN_URL ;
以下是我的其余代码:
String[] whereArg = {url};
ContentValues values = new ContentValues();
values.put(DbHelper.COLUMN_LAST_URL, lastUrl);
database.updateWithOnConflict(DbHelper.TABLE_BOOKMARK,
values,
whereClause,
whereArg,
SQLiteDatabase.CONFLICT_IGNORE);
如果基本网址是查询的子字符串,我将尝试更新“ LastUrl”列。
我喜欢捕捉的一些例子
Base Url (in database) Query
-----------------------------------------------------------------
http://example.com/path http://example.com/path/path2
http://example.com/path?id=0 http://example.com/path?id=0&x=xx
LIKE运算符检查左侧的值是否与右侧的模式匹配。 因此,只需将值放在左侧,将模式放在右侧。 如果模式需要数据库中没有的%
,则必须附加它:
SELECT ... WHERE ? LIKE LastUrl || '%' ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.