MySQL在一个表中创建两列数据的索引和

时间:2017-11-16 04:00:36

标签: mysql sql indexing


 >> table1
 -------------------------------------------------------------
 | column1 | column2 | column3 | column4 | column5 | column6 |
 +---------+---------+---------+---------+---------+---------+
 |  data1  |  data2  |  data3  |  data4  |  data5  |  data6  |
 +---------+---------+---------+---------+---------+---------+
 |  data7  |  data8  |  data9  |  data10 |  data11 |  data12 | 
 +---------+---------+---------+---------+---------+---------+
                               .
                               .
                               .
 +---------+---------+---------+---------+---------+---------+
 |  data   |  data   |  data   |  data   |  data   |  data   | 
 -------------------------------------------------------------

 >> query
 SELECT * FROM table1
     WHERE (column5 + column6) >= 6;


如何在MySQL中为此查询创建索引?

2 个答案:

答案 0 :(得分:1)

MySQL的较新版本(5.7.6)(以及带有STORED列的5.2中的MariaDB)具有“生成”列。你会创建如(col5 + col6),然后索引这个假列。表格中的这一列可以是VIRTUAL,我们可以是col56 GENERATED ALWAYS AS (col5 + col6) VIRTUAL -- or STORED 。阅读文档以获取详细信息。

var ctrls = document.getElementById("titlebar").getElementsByTagName("a");
for (var i = 0; i < ctrls.length; i++)
  ctrls[i].style.display = "block";

答案 1 :(得分:0)

我不相信你可以在两列的总和上创建一个索引。

您可以添加一个包含column5 + column6和index的附加字段。

您可以使用额外的列创建一个视图,该列等于column5 + column6和index。