有四个字段的复合索引,需要使用三个

时间:2018-11-27 20:54:33

标签: mysql sql

我有以下索引:

ALTER TABLE mytable ADD INDEX (first, last, age, gender)

年龄是可为空的字段。

我还运行了两个查询:

SELECT * FROM mytable WHERE first=x and last=y and age=z

并且:

SELECT * FROM mytable WHERE first=x and last=y and age=z and gender=w

如何确保两个查询使用相同的索引?有没有办法传递“假值”之类的东西,使其始终返回true,例如:

SELECT * FROM mytable WHERE first=x and last=y and age=z and gender=*

这样,它可以自动使用我创建的4索引。最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

索引中的键从左到右使用。您所有的条件都是相等的,因此两者都应使用索引。

MySQL documentation很好地解释了如何使用索引。