首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL选择类型问题(php)

MySQL选择类型问题(php)
EN

Stack Overflow用户
提问于 2011-03-24 18:40:50
回答 2查看 1.2K关注 0票数 2

我有一个数据库:

代码语言:javascript
复制
id       |                movie_name              |           genres
1        |                 Die Hard               |        Action, Thriller
2        |                Gladiator               | Adventure, Action, Drama, History
3        |  Harry Potter and the Sorcerers Stone  |    Fantasy, Adventure, Family
4        |               Pearl Harbor             |      Action, Melodrama, War

1)如何从所有数据库的genres中选择唯一的类型。我需要下一个:行动/冒险/戏剧/家庭/幻想/历史/情节剧/颤栗/战争

2)我怎样才能看一部特定类型的电影?

代码语言:javascript
复制
SELECT `movie_name` FROM `movies` WHERE `genre` LIKE ??

但他不仅能带来戏剧,还能带来情节剧。

( 3)如何对某一特定类型进行搜索?可能是:

代码语言:javascript
复制
 SELECT `movie_name` FROm `movies` WHERE `movie_name` LIKE `%stone%` AND `genres LIKE 'drama'.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-24 18:45:19

在数据库列中存储以逗号分隔的属性列表。

相反,有3张桌子:

代码语言:javascript
复制
Movies (id, movie_name)

id | movie_name
---+--------------------------------------
 1 | Die Hard
 2 | Gladiator
 3 | Harry Potter and the Sorcerers Stone
 4 | Pearl Harbor

Genres (id, genre_name)

id | genre_name
---+------------
 1 | Action
 2 | Thriller
 3 | Adventure
 4 | Drama
 5 | History
 6 | Fantasy
 7 | Family
 8 | Melodrama
 9 | War

MovieGenre (movie, genre)

Movie | Genre
------+-------
    1 | 1
    1 | 2
    2 | 1
    2 | 3
    2 | 4
    2 | 5
    3 | 3
    3 | 6
    3 | 7
    4 | 1
    4 | 8
    4 | 9

然后你的问题就变得简单多了。

票数 4
EN

Stack Overflow用户

发布于 2011-03-24 19:02:39

您在这里面临的问题是实现N到N关系要求。

由于电影之间的关系是多到多的关系,将其存储在数据库模式中的正确方法是在单独的表中维护关系。

为了这个练习,让我们把这个表称为"Movie_Genre_Relationship“。如果“死难”既是“动作与颤栗”电影,则应将其存储在relationship表中,如下所示:

代码语言:javascript
复制
Movie_Genre_Relationship
Movie_id | Genre_id
1        | 1
1        | 2

假设有以下电影和体裁表:

代码语言:javascript
复制
Movies
Movie_id | Movie_Name
1        | Die Hard

Genres
Genre_id | Genre_Name
1        | Action
2        | Thriller

然后,您可以通过以下操作搜索所有动作片:

代码语言:javascript
复制
select * from Movies m
inner join Movies_Genres_Relationship r on m.movie_id = r.movie_id
where r.genre_id = 1

希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5423893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档