我的电脑上有mysql表用于我的一些电影。一个表是关于演员的信息(movieID#, castID#, charName)。
例子# movieCast表
MOVIEID : idNum : charName
The Black Velvet Gown : Bob Peck : Miller
The Black Velvet Gown : Janet McTeer : Riah Millican
是否有一种方法可以使用单个搜索来搜索数据库,以便我可以搜索具有两个演员的电影?所以这两个都必须出现在电影里。或者我必须为第一个演员的结果创建一个数组,第二个演员的结果数组,并比较它们?
假设模式如下:
create table movieCast (
movieID varchar(255),
castID varchar(255),
charID varchar(255)
);
insert into movieCast (movieID, castID, charID) values (
'The Black Velvet Gown',
'Bob Peck',
'Miller'
);
insert into movieCast (movieID, castID, charID) values (
'The Black Velvet Gown',
'Janet McTeer',
'Riah Millican'
);
insert into movieCast (movieID, castID, charID) values (
'Just Bob',
'Bob Peck',
'Himself'
);
你可以使用这样的查询来获取Bob和Janet的电影(注意电影"Just Bob")只有鲍勃·派克主演的人不会出现在结果中):
select movieID from movieCast
where castID in ('Bob Peck', 'Janet McTeer')
group by movieID
having count(*) = 2;
关键是将having count(*) = 2
更改为您在where castID in ('Bob Peck', 'Janet McTeer')
中放置的多少个角色
你可以查看这个小提琴看到它的行动:http://sqlfiddle.com/#!9/722025/7/0
在您的搜索中使用IN
。
SELECT * FROM movieCast
WHERE charName IN ('Riah Millican', 'Miller') AND
movieID = 'The Black Velvet Gown';
你的英语不好,所以我只是猜测你的问题是什么。:)