SQLite - 找到某个值并在行输入值出现的另一列上找到最大值然后 select 该行上的所有元素

SQLite - find a certain value and find the highest value on another column on the row input value appears then select all the elements on that row

我在一个 c 项目上使用 sqlite3 库。我有一个这样的数据库:

|  Time  |  Message  |  ID  |  Temp  |
|--------|-----------|------|--------|
|09:05:37|    1514   |  62  |   35   |
|10:14:45|    1515   |  43  |   14   |
|11:18:50|    1997   |  28  |   43   |
|08:04:23|    1998   |  28  |   50   |           

消息是一个自动增量值。我正在尝试做的事情和我的问题是:

int ID_in;
printf("Enter the ID you want to check: ");
scanf("%d", &ID_in);

首先用户将输入一个值,我必须找到该值是否出现在 ID 列中,如果出现我可以开始我的操作。由于用户将输入一个值,我应该在我的数据库上使用 sqlite3_bind() 函数来将 ID_in 与数据库中的值进行比较吗?

如果 ID_in 出现在 ID 列上,我必须在与 ID_in 值位于同一行的 Message 列中找到最大值,因为可能不止一个 ID_in ID 列上的值。例如,如果 ID_in 是 28,我必须访问 Message 值最高的行,对于这个,我必须访问 Message 值为 1998 的行。

访问该行后,我应该打印该行的所有列。例如,如果 ID_in 是 28,则在 ID 列中找到值 28。然后找到最高的 Message 列值,即 1998。然后在该行上打印 Time、Message、ID、Temp,在本例中为 08:04:23、1998、28、50。

是的,您可以使用 prepared statementsqlite_bind 将用户输入传递给查询。 要选择具有最高 messsage 值的行,您可以使用

Select * from [table_name] where id = [user_input] order by message desc limit 1;