2010-12-19 71 views
0

我想要拍電影的列表。首先我有一個查詢,會從電影所有的第一個字母:排除開始的話從SELECT查詢

SELECT DISTINCT LEFT(film_title, 1) FROM ms_films ORDER BY film_title 

其次,我已經得到了,其選擇與特定字母開頭的所有電影的查詢:

SELECT * FROM ms_films WHERE film_title LIKE 'H%' 

Ofcourse很多電影都以'The'或荷蘭語爲'De'開頭。有什麼辦法可以從這兩個查詢中排除這些開始的單詞嗎?

基本上一部電影像「未來三天」應該根據N的兩個查詢進行分類。

回答

3

您可以使用REPLACE刪除它們

SELECT * FROM ms_films WHERE REPLACE(film_title, "The", "") LIKE 'H%' 

顯然,這將刪除的所有事件,但它不應該在你的情況下,無所謂。

如果您需要更復雜的搜索模式,您還可以使用REGEXP(或其別名RLIKE)而不是LIKE

+2

缺點:沒有索引將用於該查詢。 – Mchl 2010-12-19 21:15:08

+0

@Mchl:值得注意。 – nico 2010-12-19 21:30:15

1

如果這是你的應用程序的共同任務,我會建議引入CHAR(1)列,其中標題的第一個(實際)的信件將被保存。你可以在這個列上創建一個索引,因爲它只有一個字節,所以速度會很快。

+1

非常好的建議。我會做的。謝謝。 – Bob 2010-12-19 21:20:19