2015-01-21 56 views
0

我在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這個例子。

+0

[檢索的最後一個記錄各組]的可能重複(http://stackoverflow.com/questions/1313120/retrieving-the- last-record-in-each-group) – Tomalak 2015-01-21 08:47:32

回答

0

是的,您可以使用prepared statementsqlite_bind將用戶輸入傳遞給查詢。 選擇具有最高messsage值,您可以使用該行,

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

+0

我該如何綁定user_input?什麼是最好的方法來對付SQL注入? – kollarotta 2015-01-21 10:03:39

相關問題