我想知道下列之间在性能方面是否有任何差异
SELECT ... FROM ... WHERE someFIELD IN(1,2,3,4)
SELECT ... FROM ... WHERE someFIELD between 0 AND 5
SELECT ... FROM ... WHERE someFIELD = 1 OR someFIELD = 2 OR someFIELD = 3 ...
Run Code Online (Sandbox Code Playgroud)
或者MySQL会像编译器优化代码一样优化SQL吗?
编辑:由于评论中陈述的原因,将's 更改为AND's OR.
我有以下表格(为简单起见,省略了其他表格).1代表所有人,2代表那些人玩的运动.我使用PHP来允许用户查看人员列表.他们可以根据一个人的名字或他们玩的运动来过滤.所以,我希望能够看到所有玩棒球和足球的人.
create table people (
id int,
name varchar(50)
);
create table people_to_sports (
personID int,
sportID int,
primary key(personID,sportID)
);
Run Code Online (Sandbox Code Playgroud)
基本上我的问题是,我如何使用people_to_sports来获取所有参加运动1和运动2的人的列表?
我这里有一个sqlfiddle .
谢谢!