我有一个表“故事”如下:
+++++++++++++++++++++++++++++++++++++++++++
| id | keywords |
+++++++++++++++++++++++++++++++++++++++++++
| 1 | romance,movie,drama |
| 2 | newmovie,horor,comedy |
| 3 | movie,scifi |
| 4 | newmovie,romance,drama,asia |
| 5 | kids,movie |
+++++++++++++++++++++++++++++++++++++++++++
我尝试查询以在关键字字段中搜索“电影”,如下所示:
SELECT id FROM story WHERE keywords LIKE '%movie%'
,结果是
1,2,3,4,5
但在这种情况下,我希望结果为1,3,5
(字段值newmovie
不包括在内)。有人可以帮我查询怎么做?
感谢您的帮助..
答案 0 :(得分:3)
你想这样使用find_in_set
:
java -jar bfg.jar --delete-files *.pyc
虽然您应该考虑规范化表格结构。
在这种情况下,您可以在一行中存储一个关键字,然后查询就像:
SELECT id FROM story WHERE find_in_set('movie', keywords) > 0;
这将是它的结束。不需要繁重的字符串功能。
你可以有这样的结构:
select id from story where keyword = 'movie';
然后,你可以简单地加入这两个:
keywords(id, name);
story(story_id,. . ., keyword_id);
答案 1 :(得分:-1)
你的问题是" newmovie"可以通过"%movie%"找到你只需要搜索"电影"。