gpt4 book ai didi

android - MySql查询用于比较同一个表与不同记录的Id

转载 作者:行者123 更新时间:2023-11-29 14:05:09 24 4
gpt4 key购买 nike

我需要有关 My Sql 查询的帮助..

我的 table 是这样的

_id studid  recid   arrival
834 29 436 12:04
835 29 437 12:19
836 29 438 12:35
837 29 439 12:43

现在我需要比较 recid 436recid 439 的 id

就是这样

  _id(recid(436)) < _id(recid(439)) // 834 < 837 (true)

我需要查询这个..

我尝试过这样的..

public boolean Check(String tid,String src,String dest)
{
Cursor c1 = this.db.query(TABLE_NAME_2, new String[] { "_id" },
"_studId = \"" + src +"\" AND _recId = \"" + tid+"\"" , null, null, null, null);

Cursor c2 = this.db.query(TABLE_NAME_2, new String[] { "_id" },
"_studId = \"" + dest +"\" AND _recId = \"" + tid+"\"" , null, null, null, null);
int srcid = 0;
int destid = 0;

if (c1.moveToFirst())
{
do {
srcid = Integer.parseInt(c1.getString(0));
} while (c1.moveToNext());
}
if (c1 != null && !c1.isClosed()) {
c1.close();
}
if (c2.moveToFirst())
{
do {
destid = Integer.parseInt(c2.getString(0));
} while (c2.moveToNext());
}
if (c2 != null && !c2.isClosed()) {
c1.close();
}
if(srcid < destid)
{
return true;
}
else
{
return false;
}
}

这样检查时返回正确的结果

 System.out.println(dh.Check("29", "436", "439")); // returns true.

但我认为它的过程不正确,因为会有多条记录。因此,如果有 50 条记录,那么我必须执行此函数 50 次。所以我需要一个简单的查询。

如果有人有这样的经历。请帮助我..

提前致谢。

最佳答案

您可以使用这样的查询,它返回 0 或 1:

SELECT (SELECT _id FROM MyTable WHERE recid = 436) <
(SELECT _id FROM MyTable WHERE recid = 439)

为了提高重复执行的效率,请使用预编译语句,您可以使用不同的参数多次执行该语句:

SQLiteStatement stmt = db.compileStatement(
"SELECT (SELECT _id FROM MyTable WHERE studid = ? AND recid = ?) < "+
"(SELECT _id FROM MyTable WHERE studid = ? AND recid = ?)");
...
int recid_src = 436;
int recid_dst = 439;
int studid = 29;
stmt.bindLong(1, studid);
stmt.bindLong(2, recid_src);
stmt.bindLong(3, studid);
stmt.bindLong(4, recid_dst);
boolean result = stmt.simpleQueryForLong() != 0;

关于android - MySql查询用于比较同一个表与不同记录的Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498802/

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