我在sqlite数据库中保存了一个id,title,discription,因此在加载时我通过了loadquery(“%”),我不明白这个%的含义,而是为您提供功能代码。
// calling the loadquery
Loadquery("%")
fun Loadquery(title:String)
{
var dbManager=DbManager(this)
val projections= arrayOf("ID","Title","Description")// array of cols
val selectionArgs= arrayOf(title) // array of rows
val cursor=dbManager.Query(projections,"Title like ?",selectionArgs,"Title")
list_notes.clear()
if(cursor.moveToFirst())
{
do{
val ID=cursor.getInt(cursor.getColumnIndex("ID"))
val Title=cursor.getString(cursor.getColumnIndex("Title"))
val Description=cursor.getString(cursor.getColumnIndex("Description"))
list_notes.add(note(ID,Title,Description))
}
while (cursor.moveToNext())
}
var myNotesAdapter= myadapter(list_notes)
lis.adapter=myNotesAdapter
}
答案 0 :(得分:1)
%
是通配符序列,因此查询将返回标题为任何内容的所有行。
如果您通过了 a%
,它将返回所有以A开头的行(或A,因为LIKE不区分大小写)。
如果您通过了 %a%
,则它将返回标题中带有任意位置的所有行,依此类推。
SQL As Understood By SQLite - expression - The LIKE, GLOB, REGEXP, and MATCH operators说:-
LIKE运算符进行模式匹配比较。
操作数 LIKE运算符的右侧包含模式和左手 操作数包含要与模式匹配的字符串。
百分比 LIKE模式中的符号(“%”)与零或更大的任何序列匹配 字符串中的字符。
LIKE模式中的下划线(“ _”) 匹配字符串中的任何单个字符。任何其他字符 匹配自身或其等效的小写/大写字母(即 不区分大小写的匹配)。
重要说明:SQLite仅能理解 默认情况下,ASCII字符的大写/小写。 LIKE运算子是 默认情况下,区分大小写的Unicode字符超出 ASCII范围。