gpt4 book ai didi

java - 如何使用OR条件在SQLITE数据库android上搜索?

转载 作者:行者123 更新时间:2023-12-04 08:57:18 24 4
gpt4 key购买 nike

我在 sqlite android 上搜索时遇到问题。
我的输入类型是姓名、电话号码、代码。
我想要的是每当用户在搜索栏中键入以下任何类型的输入时,它应该检查它是否存在于任何给定列中并返回值。
例如,如果用户输入名称 ALAN,则应返回 ALAN。如果用户输入代码 Jaxxx1,那么它应该搜索值 Jaxxx1 并返回其对应的数据。如果用户使用电话号码进行搜索,则应返回其相应的数据。
我得到的是什么。
下面是我的代码有人请帮助我。

public List<Contacts> search(String keyword) {
List<Contacts> contacts = null;
try {
SQLiteDatabase sqLiteDatabase = getReadableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery("select * from " + TABLE_CONTACTS + " where (" + COLUMN_NAME+" or "+COLUMN_CODE +" or "+COLUMN_PNO + ") like ?", new String[]{"%" + keyword + "%"});
if (cursor.moveToFirst()) {
contacts = new ArrayList<>();
do {
int id = Integer.parseInt(cursor.getString(0));
String cardNo = cursor.getString(1);
String name = cursor.getString(2);
String jacode = cursor.getString(3);
String phno = cursor.getString(4);


Contacts contact = new Contacts();
contact.setId(id);
contact.setCardID(cardNo);
contact.setName(name);
contact.setJacode(jacode);
contact.setPhno(phno);

// Toast.makeText(context,contact.getBalance(),Toast.LENGTH_SHORT).show();


contacts.add(new Contacts(id, cardNo, name, jacode, phno, cplan, rent, balance, zone, oldBalance, paidDate, paidAmount, status));
} while (cursor.moveToNext());
}
} catch (Exception e) {
contacts = null;
}
return contacts;
}
我是这里的新手,请帮助我

最佳答案

我认为你在这一行中犯了一个错误Cursor cursor = sqLiteDatabase.rawQuery("select * from " + TABLE_CONTACTS + " where (" + COLUMN_NAME+" or "+COLUMN_CODE +" or "+COLUMN_PNO + ") like ?", new String[]{"%" + keyword + "%"});你的陈述应该是这样的:"select * from " + TABLE_CONTACTS + " where " + COLUMN_NAME + " like ?" + " or " + COLUMN_CODE + " like ?" + " or " + COLUMN_PNO +" like ?", new String[]{"%" + keyword + "%","%" + keyword + "%","%" + keyword + "%"});请检查语句(如果我忘记了双引号)。为了获得结果,您应该始终注意用户类型(大写或小写),以便您可以使用 SQLite 中已经内置的一些函数。

关于java - 如何使用OR条件在SQLITE数据库android上搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63746615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com