sql / mysql从结果中减去一组关键字

时间:2012-02-03 10:01:03

标签: mysql sql

我的表格MOVIES包含以下字段:genreclassification。我正在寻找所有的动作片而不是动画片。

每行包含所有分类,例如行如下:

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

这就是我尝试过的。它返回0结果。任何帮助将不胜感激,谢谢

3 个答案:

答案 0 :(得分:1)

尝试此查询 -

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

另外,我建议您对数据进行规范化。

答案 1 :(得分:0)

但这是正确的。 不应该返回“动作,惊悚片,动画片,动画片”上面的行,因为它就像'%Animated-Action%'。

如果您有“行动,惊悚,动作,电影”等行,则会返回。

您能否显示一个您认为应该返回的行的示例,但事实并非如此?

答案 2 :(得分:0)

希望这个帮助

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%'