mysql - 复合主键对的查询sql该如何写

 啊哈1983_384 发布于 2022-10-30 23:51
SELECT * FROM table
WHERE (a, b) IN (('AAA', 111), ('BBB', 222), ...);

这种sql有没有更优的写法?

在mysql 5.6,这种写法是不会走索引的,除非用FORCE INDEX

在mysql 5.7,这种写法在IN参数超过一定量之后,也是不会走索引的。


2016年11月9日更新

在StackOverflow找到个写法,用NATURAL JOIN,先去试试。

参考资料:

http://stackoverflow.com/ques...

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有