2011-10-04 96 views

回答

6

這取決於:

WHERE field1 LIKE 'test' << can use index 
WHERE field1 LIKE 'test%' << can also use index 
WHERE field1 LIKE '%test' << cannot use index 
WHERE field1 LIKE '_test' << cannot use index 

只要通配符是在開始時,沒有索引都可以使用。如果您在通配符之前已經修復了數據,則可以使用索引。

一些數據庫如PostgreSQL有詭計允許在所有情況下使用索引,但MySQL和SQLite不這樣做。

+0

有道理 - 我現在知道這對MySQL是真實的。 SQLite呢? – Anthony

+0

@Anthony:對,SQLite也是如此。 – Johan

+0

謝謝。由於某種原因,我完全錯過了第二句話。對於重申的問題抱歉。 – Anthony

2

這可能會幫助您:How MySQL Uses Indexes

+0

是的,謝謝。這一切都有道理。我猜SQLite會非常相似,但你會碰巧知道嗎?我找不到它在http://www.sqlite.org/lang_expr.html – Anthony

+0

不,我只知道關於MySQL – michael667