如何在php表中搜索具有相同的其他列值的多个列值?

  • 本文关键字:其他 php 搜索 mysql search
  • 更新时间 :
  • 英文 :


我的电脑上有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';
你的英语不好,所以我只是猜测你的问题是什么。:)

相关内容

  • 没有找到相关文章

最新更新