我需要从数据库中选择查询所有以一个或多个字母开头但不包含字母“x”的姓名。
对于现在存在于以下代码中的一些标题(它很慢但有效):
String qstr = "SELECT SUM("+SQLhelper.COL_COUNT +") FROM "
+ SQLhelper.TABLE_MYDETAILS + " WHERE " +
SQLhelper.COL_DETAILID + " LIKE 'sh%'" +
" or " + SQLhelper.COL_DETAILID + " LIKE 'sw%'" +
" or " + SQLhelper.COL_DETAILID + " LIKE 'cty%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'twn%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'tlm%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'sp%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'rac%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'frnd%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'elf%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'pm%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'cas%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'oct%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'hp%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'njo%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'loc%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'stu%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'iaj%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'tlr%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'lor%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'ovr%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'tnt%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'pi%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'idea%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'min%'"+
" or " + SQLhelper.COL_DETAILID + " LIKE 'trn%'";
Cursor allc = db.rawQuery(qstr, null);
allc.moveToFirst();
int cnt = allc.getInt(0);
if(cnt==0) {
Toast.makeText(this, getResources().getString( R.string.myminifigsnotfound ), Toast.LENGTH_LONG).show();
return;
}
allc.close();
当我添加其他名称时,必须将其添加到查询字符串中。 我尝试这样做,使用正则表达式:
sql = "SELECT " + SQLhelper.COL_DETAILID + "," + SQLhelper.COL_COUNT
+ " FROM " + SQLhelper.TABLE_INSTRUCTIONS
+ " where " +SQLhelper.TABLE_INSTRUCTIONS_SETID + "="+setid
+ " and "+ SQLhelper.COL_DETAILID +" LIKE '[a-wyz]%'";
但它不起作用,它返回一个空查询。 怎么做?
最佳答案
也许现在回答这个问题有点晚了,但我把它放在这里是为了以后可能会遇到同样问题的人。要在 Android 的 Sqlite 中使用 REGEXP 运算符,您可以使用库 SqliteRE:
https://github.com/mobi-life/sqlitere
如果需要,它还支持用于加密数据的可选功能。
关于android sqlite 和正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28772467/