2012-01-30 68 views
0

查詢源碼我寫的選擇這樣的查詢:如何使用限制

'String selection3 = TriplePayProviderMetaData.ProgramTableMetaData.PROGRAM_LCN + " = '" + channelLcn + "'" + " AND " + TriplePayProviderMetaData.ProgramTableMetaData.PROGRAM_START_TIME + " > " + " '" + time + "'" + " LIMIT " + " '" + 3 + "'";'

但它在極限說語法錯誤:

'android.database.sqlite.SQLiteException: near "LIMIT": syntax error: , while compiling: SELECT title, lcn, _id, end_time, description, program_logo, start_time, rating, parent_guide FROM programs WHERE (lcn = '100' AND start_time > '1327026600000' LIMIT '3') ORDER BY start_time ASC E/AndroidRuntime(15912): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:158) E/AndroidRuntime(15912): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114) E/AndroidRuntime(15912): at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:330) E/AndroidRuntime(15912): at android.content.ContentProviderProxy.query(ContentProviderNative.java:366) E/AndroidRuntime(15912): at android.content.ContentProviderClient.query(ContentProviderClient.java:49) E/AndroidRuntime(15912): at com.vovinet.miniepguru.MiniEpgActivity$1.onClick(MiniEpgActivity.java:150) E/AndroidRuntime(15912): at android.view.View.performClick(View.java:2485) E/AndroidRuntime(15912): at android.view.View.onKeyUp(View.java:4257) E/AndroidRuntime(15912):
at android.view.KeyEvent.dispatch(KeyEvent.java:1280) E/AndroidRuntime(15912): at android.view.View.dispatchKeyE W/ActivityManager(1133): Force finishing activity com.vovinet.miniepguru/.MiniEpgActivity W/ActivityManager(1133): Activity pause timeout for HistoryRecord{40630af0 com.vovinet.miniepguru/.MiniEpgActivity}'

回答

2

你傳入限制爲String。限制是一個整數值。因此,請刪除限制中的"'"標記。

也限制有兩個參數

LIMIT 0,10

1st value 0 show that start getting record form 0 position. 2nd value 10 show that get then record from starting position. So it will return 1st 10 records.

if you say 10 , 10. It will get 10-20 record form the cursor. As starting position is 10 and no of record is also 10.

您還可以檢查此鏈接 http://www.sqlite.org/lang_select.html

編輯: 您的查詢

SELECT title, lcn, _id, end_time, description, program_logo, start_time, rating, parent_guide FROM programs WHERE (lcn = '100' AND start_time > '1327026600000' LIMIT 0 , 3) ORDER BY start_time ASC

基本上你是加入限錯誤

限制是訂單後使用cluse(檢查鏈接http://www.sqlite.org/lang_select.html

應該

SELECT title, lcn, _id, end_time, description, program_logo, start_time, rating, parent_guide FROM programs WHERE (lcn = '100' AND start_time > '1327026600000') ORDER BY start_time ASC LIMIT 0 , 3

+0

你好阿爾斯蘭感謝您的快速response.if我使用像上面的,但它給出了相同的error' android.database.sqlite.SQLiteException:近「限制」:語法錯誤:,編譯時:SELECT title,lcn,_id,end_time,description,program_logo,start_time,rating,parent_guide FROM programs WHERE(lcn ='100'AND start_time>'1327026600000'LIMIT 0,3)ORDER BY start_time ASC' – malli 2012-01-30 09:33:55

+0

THANKS FOR REPLY ,通過使用上面的select查詢如何寫查詢來獲得結果'SELECT title,lcn,_id,end_time,description,program_logo,start_time,rating,parent_guide FROM programs WHERE(lcn ='100'AND start_time>'1327026600000') ORDER BY start_time ASC LIMIT 0,3'就像這樣。 – malli 2012-01-30 10:42:20

+0

現在有什麼錯誤?它不工作? – Arslan 2012-01-30 11:11:09

0

事實上SQLiteDatabase具有的功能做這件事。

公共遊標查詢(String table,String [] columns,String selection,String [] selectionArgs,String groupBy,String having,String orderBy,String limit) 查詢給定的表,返回一個Cursor覆蓋結果集。

limit限制查詢返回的行數,格式爲LIMIT子句。傳遞null表示沒有LIMIT子句。

請看here

+0

嗨hubert感謝您的響應實際上,我正在查詢數據庫內容provider.so數據如果我通過上述論據查詢,它給編譯錯誤tupe內容providerclient中的方法查詢不適用 – malli 2012-01-30 09:40:16