2010-12-19 10 views
0

私は映画のリストを作成しようとしています。勿論SELECTクエリから開始単語を除外します。

SELECT * FROM ms_films WHERE film_title LIKE 'H%' 

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

第二に、私は、特定の文字で始まるすべてのムービーを選択するクエリを持っている:まず、私は映画からのすべての最初の文字を取得するクエリを持っていますかなりの映画は「The」またはそれのためのオランダ語で始まります。これらの2つのクエリからこれらの開始語を除外する方法はありますか?

基本的に '次の3日間'のような映画は、両方のクエリでNの下に分類する必要があります。

答えて

3

あなたは

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

は明らかにこれは、のすべての出現を削除し、それらを削除するために REPLACEを使用することができますが、それはあなたのケースでは問題ないはずです。

さらに洗練された検索パターンが必要な場合は、LIKEの代わりにREGEXP(またはその別名RLIKE)を使用することもできます。

+2

欠点:このクエリにインデックスは使用されません。 – Mchl

+0

@Mchl:よく注目されています。 – nico

1

これがアプリケーションの共通タスクであれば、タイトルの最初の(実際の)文字が格納されるCHAR(1)列の導入をお勧めします。この列の索引は、1バイトだけなのでかなり高速に作成できます。

+1

非常に良い提案です。これをするつもりです。ありがとう。 – Bob

関連する問題