我在c項目上使用sqlite3庫。我有這樣一個數據庫:SQLite - 找到一個特定的值,並找到行上的另一列上的最高值出現輸入值,然後選擇該行上的所有元素
| 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列中找到同一行上的消息列的最大值,因爲ID列上可能有多於一個ID_in
值。例如,如果ID_in
是28,我必須訪問消息值最高的行,對於這一個,我必須訪問消息值爲1998的行。
我訪問該行後,應打印所有列那一排。例如,如果ID_in是28,則在ID列上找到值28。然後找到最高的消息列值,即1998年。然後在該行打印時間,消息,ID,Temp爲08:04:23,1998年,28,50這個例子。
[檢索的最後一個記錄各組]的可能重複(http://stackoverflow.com/questions/1313120/retrieving-the- last-record-in-each-group) – Tomalak 2015-01-21 08:47:32