2012-02-03 9 views
0

私はテーブルMOVIESにこれらのフィールドがあります:genreclassificationです。私はすべてのアクション映画を探していますが、アニメアクション映画は探していません。sql/mysqlは結果からキーワードの集合を引きます

Action,thriller,animated-action,movie 
SELECT * FROM movies 
WHERE $email_filter 
concat(movies.genre, movies.classification) like '%Action%' 
AND NOT LIKE '%Animated-Action%' 

これは私が試したものです:

各行は、行がどのように見えるたとえば、すべての分類が含まれています。 0の結果を返します。どんな助けでもありがとうございました

+0

結果のコンカットはどのようにこの場合に見えますか? concatの例を結合してください。 –

+0

$ email_filterとは何ですか?私はそれについて説明していない。 –

答えて

0

しかしそれは正しいです。 「Action、thriller、animated-action、movie」より上の行は、 '%Animated-Action%'のようなものであるため返されません。

「Action、thriller、action、movie」のような行がある場合は返されます。

返されるはずだと思う行の例を表示できますか?

0

この1つは

select * from 
(SELECT *,concat(movies.genre, movies.classification) as s 
FROM movies WHERE $email_filter AND 
concat(movies.genre, movies.classification) like '%Action%') as b 
WHERE s not like '%Animated-Action%' 
+0

少なくともそれはいくつかのテストデータを処理しました –

1

このクエリを試してみてください役立ちます希望 -

SELECT * FROM movies 
WHERE 
    FIND_IN_SET('Action', classification) AND NOT FIND_IN_SET('Animated-Action', classification); 

また、私はデータを正規化するために、あなたをお勧めしたいです。

関連する問題