我的表格MOVIES
包含以下字段:genre
和classification
。我正在寻找所有的动作片而不是动画片。
每行包含所有分类,例如行如下:
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 :(得分: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%'