以下代碼提供了數據庫中的所有值甚至是重複值。如何從sql數據庫獲取唯一值
return database.query("contacts", new String[] {"_id", "name"},
null, null, null, null, "name");
我怎樣才能獲得從上面的代碼不同的值
以下代碼提供了數據庫中的所有值甚至是重複值。如何從sql數據庫獲取唯一值
return database.query("contacts", new String[] {"_id", "name"},
null, null, null, null, "name");
我怎樣才能獲得從上面的代碼不同的值
使用採用一個布爾作爲第一參數的overload of query
和從選擇刪除_id
柱:
return database.query(true, "contacts", new String[] {"name"},
null, null, null, null, "name", null);
的_id
列是應該是獨一無二的,因此將它包括在你的查詢中會導致截然不同的效果。
同樣的問題danial! 它當然也會返回重複行 – Hafiz 2013-02-15 12:22:40
。如果您選擇了主鍵「_id」,也是如此。 _id總是獨一無二的... – 2013-02-15 12:33:55
使用此查詢:
public Cursor query (boolean distinct, String table,
String[] columns, String selection,
String[] selectionArgs, String groupBy,
String having, String orderBy, String limit)
設置的第一個參數爲true,並且不使用在選擇的youre primarey關鍵。它將永遠是唯一的...
使用不同的關鍵字,這將從數據庫返回唯一的記錄。
db.rawQuery("Select DISTINCT from table_name",null);
您應該使用'rawQuery'而不是'query'並使用帶有'DISTINCT'關鍵字的實際SQL查詢來執行此操作。另請參見[此處類似的問題](http://stackoverflow.com/questions/3489280/android-database-query)。 – 2013-02-15 11:45:43
@JohnWillemse:爲什麼不使用Stefan's或我的答案指出的'query'的重載? – 2013-02-15 11:50:22