你應該充分利用已在Android SDK中的DatabaseUtils .stringForQuery()靜態方法來方便地檢索一個值,這個例子是String
機器人也有對Long
stringForQuery(SQLiteDatabase db, String query, String[] selectionArgs)
方法
實用程序方法在db上運行查詢並返回第一行第一列中的值。
喜歡的東西
String myString=DatabaseUtils.stringForQuery(getDB(),query,selectionArgs);
這個例子是爲了得到一個字符串值,但你可以很容易地適應得到Long
值,和您的查詢應該是這樣
select count(*) from mytable where field1='stringtocheckagainst'
如果返回一個大於零的數字,那麼該字段已經存在於數據庫中。
另請參閱處理方向更改的代碼。
UPDATE通過@nutone:
在API 11及更高版本,您還可以使用DatabaseUtils.queryNumEntries
功能直接獲得的(過濾)的行數。
long count = DatabaseUtils.queryNumEntries(getDB(), table, query, selectionArgs);
這是最好的答案。唯一性應該在模式級別處理,而不是在運行時使用無關的查詢。這隻會增加更多的開銷。 – hungryghost 2014-06-25 04:49:27