CREATE TABLE test (a int(10) NOT NULL,b int(11) NOT NULL,c int(11) NOT NULL,msg varchar(255) NOT NULL,
PRIMARY KEY (a,b,c)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
代码里会计算得到很多组数据(a=1,b=2),(a=2,b=4),(a=3,b=1),(a=5,b=3)...
如果只是单列数据可以用in查询很方便的查
select * from test where a in(1,2,4,5);
但是实际应用场景a的区分度不高,b的区分度较高可是
select * from test where b in(1,2,4,5);用不上primary key。
想同时用上a,b并且一次查询查询到所有满足输入条件的数据,请教要如何查询?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
select * from test where (a,b) in ((1,1),(2,2),(3,3))
ps:如果a区分度不高的话,为什么要建立索引?
如果你觉得B匹配度较高的话,给B单独建立一个索引吧。