我在数据库中有一些项目。我使用“like”关键字过滤
查询:mCursor = mDb.query(listTable, new String[] { ID_rs,
Item_name, item_code, Unit_code, Tot_Amt, dis_count, },
Item_name + " like '%" + mix + "%' ORDER BY "
+ Item_name + " ASC", null, null, null, null, null);
Ex:数据库中的值 1.SAKTHI readymix 2.curry Mix 3.Mixture
我的结果: 1.SAKTHI readymix 2.curry Mix 3.Mixture
但我需要“curry Mix,Mixture”作为我的输出我怎么能得到它。帮助我!
答案 0 :(得分:2)
继续发表评论,
您可以尝试使用语法
Item_name + " like '" + mix + "%' OR " + Item_name + " like '% " + mix + "%'"
基本上,
答案 1 :(得分:1)
理论上,最简单的方法是为项目名称创建full-text search table,但并非所有Android版本都启用了FTS。
要搜索以mix
开头的值,请使用LIKE
。
要搜索单词开头mix
的值,请使用GLOB
搜索mix
前面不是字母的字符:
SELECT *
FROM ListTable
WHERE ItemName LIKE 'mix%'
OR ItemName GLOB '*[^a-zA-Z][mM][iI][xX]*'
与LIKE
不同,GLOB
区分大小写,因此您必须列出小写和大写字符。
如果一个单词可以包含任何非ASCII字母,则必须将它们添加到a-z
集。
答案 2 :(得分:1)
鉴于“@CL我需要搜索字符串的开头而不是中间的字 - APriya”
如果你尝试怎么办?
Query:mCursor = mDb.query(listTable, new String[] { ID_rs, Item_name, item_code, Unit_code, Tot_Amt, dis_count, }, Item_name + " like '% " + mix + "%' ORDER BY " + Item_name + " ASC", null, null, null, null, null);
请注意第一个%之后的空格,因为目标是仅查找以mix开头的条目。
答案 3 :(得分:0)
您应该使用使用OR运算符的where子句:
WHERE Item LIKE '%to' OR Item LIKE 'to%'