2015-08-28 33 views
0

我有兩個疑問:兩個在一個SQLite的查詢去

SELECT word FROM dictionary WHERE lang = 'english' AND word LIKE 'k%' LIMIT 10; 
SELECT word FROM dictionary WHERE lang = 'english' AND word LIKE 's%' LIMIT 10; 

因爲數據庫是巨大的,每個查詢需要一定的時間。所以,我的問題是,我可以將上述查詢合併爲一個,其中每個都有LIMIT?如果是的話,那麼該怎麼做呢?

任何幫助表示讚賞。謝謝。

回答

1

嘗試這樣的:

SELECT * from (select word FROM dictionary WHERE lang = 'english' AND word LIKE 'k%' LIMIT 5) 
UNION ALL 
SELECT * from (select word FROM dictionary WHERE lang = 'english' AND word LIKE 's%' LIMIT 5); 

而且在可以創建index在你列一個更快的方式檢索數據。

+0

**注意(1)**'UNION ALL'包含最終的重複項,而'UNION'不包含。 **注意(2)**:索引應該在所有包含在WHERE和JOIN子句中的列上創建。 –

+0

如果我放置';'在UNION之前,它給我的話只有'k'。 如果我沒有放置它,它會顯示一個錯誤,因爲「LIMIT子句應該在UNION ALL之後纔會出現」。任何幫助? – Sibir

+0

@Sibir: - 更新了我的答案。你也可以使用UNION代替UNION ALL,如果你不想重複的話! –