mysql查询 怎么使用 in

mysql查询 怎么使用 in,第1张

in作为查询条件,一般典型有两种用法:一是IN常量,例如下面语句查询一、三年级的学生:SELECT * FROM student WHERE grade IN ('一','三')二是使用子查询,也就是IN(SQL语句),例如下面的语句查询不及格的班级的所有学生:SELECT * FROM student WHERE classno IN (select classno from scores where score<60)

CREATE TABLE `test_a` (

id int PRIMARY KEY AUTO_INCREMENT,

  `id_a` varchar(20) ,

  `name` varchar(20) ,

  `sort` int(11) DEFAULT NULL,

  `sort1` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

自增主键,mysql会自动创建唯一索引

表里记录4条

EXPLAIN SELECT * from test_a WHERE id in(1,2,3)

走索引在指定范围内进行查询 range

EXPLAIN SELECT * from test_a WHERE id in(1,2,3,4)

全表扫描,不走索引,表里有4条数据,查询也是4条,mysql判定全表扫描

mysql会根据表里的总条数和查询条数判定是否应该走索引,自己指定force index(索引名字)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8560032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存