gpt4 book ai didi

java - 查询仅返回表中的数字或数字+字母组合。如何修改它以显示带字母的记录?

转载 作者:搜寻专家 更新时间:2023-10-30 23:26:33 28 4
gpt4 key购买 nike

我只想接收来自 KEY_EXAMPLE 列的记录。当KEY_EXAMPLE列有“1234”或“1234a”等记录时,代码会显示此类记录,但当它有“abcd”等记录时,则不会显示。

我想看看为什么不显示字母记录,我认为是“选择”的问题,但我不知道怎么写。

 public static final String _id = BaseColumns._ID;
public static final String KEY_EXAMPLE = "Example";

private static final String SCRIPT_CREATE_DATABASE =
"create table " + MYDATABASE_TABLE + " ("
+ _id + " integer primary key autoincrement, "
+ KEY_X + " text, "
+ KEY_Y + " text,"
+ KEY_EXAMPLE + " text);";


public Cursor showRecordsFromExample(){
String[] selectedColumn = new String[]{_id, KEY_EXAMPLE};
Cursor selectedCursor = sqLiteDatabase.query(MYDATABASE_TABLE, selectedColumn,
"Example", null, null,
null, null);
return selectedCursor;
}

为什么只显示数字或数字+字母的记录?如何让它也显示信件记录?

最佳答案

Why it's showing numbers or numbers+letters records only?

原因是 WHERE 子句(查询方法的第三个参数)很可能不是预期的表达式。

这实际上是你在使用 :-

SELECT _id,Example FROM mytable WHERE Example; 

因此 Example 列被认为是比较的结果,它要么为假,要么为真(0 或 1)。

abcd 在非数字中为 0 false。

当第一个遇到数字时,例如123123ABC 然后 SQlite 考虑数值,如果它不是 0 那么它是真的。

  • 0ABC 为假。
  • -9ABC 为真。
  • ABC999 为假(非数字优先)

错误行 (0) 被忽略,真实行(非 0)被包括在内,因此结果。

How to make it showing letters records too?

如果你使用过:-

public Cursor showRecordsFromExample(){
String[] selectedColumn = new String[]{_id, KEY_EXAMPLE};
Cursor selectedCursor = sqLiteDatabase.query(MYDATABASE_TABLE, selectedColumn,
null, null, null,
null, null);
return selectedCursor;
}

然后您将获得所有行的值。

如果你要使用:-

public Cursor showRecordsFromExample(){
String[] selectedColumn = new String[]{_id, KEY_EXAMPLE};
Cursor selectedCursor = sqLiteDatabase.query(MYDATABASE_TABLE, selectedColumn,
KEY_EXAMPLE + " LIKE '%a%'", null, null,
null, null);
}

然后这将返回在 Example 列中的任何位置具有 a 或 A 的所有行。

关于java - 查询仅返回表中的数字或数字+字母组合。如何修改它以显示带字母的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56614987/

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