檢測是否存在具有給定rowid的行是最佳/最正確/最快/最恰當的方法?SQLite:檢測rowid是否存在
或者通過擴展,hwo檢測是否至少有一行符合給定條件?
我解僱了一些這些請求。我目前使用
SELECT 1 FROM table WHERE condition LIMIT 1
看起來有點怪我,但在我看來像「最少的工作」爲分貝,但是,我的SQL知識參差不齊。
檢測是否存在具有給定rowid的行是最佳/最正確/最快/最恰當的方法?SQLite:檢測rowid是否存在
或者通過擴展,hwo檢測是否至少有一行符合給定條件?
我解僱了一些這些請求。我目前使用
SELECT 1 FROM table WHERE condition LIMIT 1
看起來有點怪我,但在我看來像「最少的工作」爲分貝,但是,我的SQL知識參差不齊。
比如,你可以使用
SELECT COUNT(*) FROM table WHERE ID = whatever
我可能會做這樣的事:
SELECT
CASE
WHEN EXISTS(SELECT NULL FROM table1 WHERE ID=someid)
THEN 1
ELSE 0
END
要Count
行是不是有效。
要檢查,如果事情exists
在大多數情況下更有效
我不一定需要一個0/1,一個SELECT where sqlite3_step()返回DONE或ROW就足夠了。 - – peterchen 2012-03-28 13:46:15
一個可以測試
select true from table where id = id1
由於它的源碼,你需要使用列名「ROWID」訪問ID列。使用克雷格林格SQL,SQLite的版本是這樣的:
SELECT EXISTS(SELECT 1 FROM table WHERE rowid = insert_number)
你有更好'SELECT 1 FROM表WHERE ID = whatever'或者,如果SQLite支持它,'SELECT EXISTS(SELECT 1 FROM表WHERE id = whatever)'爲布爾結果。 – 2012-07-22 13:05:41