gpt4 book ai didi

android - 如何在查询函数中使用 LIKE 子句

转载 作者:IT王子 更新时间:2023-10-29 06:25:35 25 4
gpt4 key购买 nike

我正在制作一个根据发件人号码在收件箱中搜索邮件的应用程序。这是我的代码:

public void onClick(View v)
{
Toast.makeText(this, "search", Toast.LENGTH_LONG).show();
final Uri SMS_INBOX = Uri.parse("content://sms/inbox");

String[] colList = {"address", "body"};

Cursor c = getContentResolver().query(SMS_INBOX, colList, null, null,"DATE desc");

String yz= String.valueOf(c.getCount());
Toast.makeText(this, yz, Toast.LENGTH_LONG).show();

if(c.moveToFirst())
{
Toast.makeText(this, searchtxt.getText(), Toast.LENGTH_LONG).show();

for(int i=0;i<c.getCount();i++)
{
String number=c.getString(c.getColumnIndexOrThrow("address")).toString();
boolean match = number.toUpperCase().indexOf(searchtxt.getText().toString()) != -1;

if (match)
{
Toast.makeText(this, String.valueOf(i), Toast.LENGTH_LONG).show();
String body= c.getString(c.getColumnIndexOrThrow("body")).toString();
tv.setText(tv.getText() + "\n" + body);
}
c.moveToNext();
}
}
else
{
Toast.makeText(this, "Inside else", Toast.LENGTH_LONG).show();
}

c.close();
}

上面的代码工作正常,但它检索了收件箱中的所有消息。我希望它应该只检索那些与发件人号码匹配的消息。为此,我尝试使用 LIKE 子句进行查询,但它返回 0 条记录。使用 LIKE 子句的正确方法是什么。这是我尝试使用 LIKE

的代码
String[] colList = {"address", "body"};
String[] argList = {"'%"+searchtxt.getText().toString()+"%'"};
Cursor c = getContentResolver().query(SMS_INBOX, colList, "address LIKE ?", argList,"DATE desc");

String yz= String.valueOf(c.getCount());
Toast.makeText(this, yz, Toast.LENGTH_LONG).show();

请帮帮我....谢谢...

最佳答案

有两个 clown :“%”和“_”。

"%"正在替换任何字符串(多个字符),

“_”正在替换一个(且仅一个)字符。

例如:

LIKE 'B%' 

让您找到以“B”开头的所有内容。 (如“ bat 侠”);

LIKE '%B%'

让你找到所有包含“B”的东西。 (如“ABBA”);

LIKE'_B%'

让您找到包含一个字符,然后是“B”的所有内容。 (例如“ABERCROMBIE”)。

如果要检索包含“%”或“_”的字符串,可以使用转义符:

LIKE '%#_B%' ESCAPE #

让您找到包含一个“_”后跟一个“B”的任何字符串。 (如“TEST_BATMAN”)。

希望对您有所帮助。

Al_th

关于android - 如何在查询函数中使用 LIKE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11686497/

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