mysql反向索引和查询

vjhs03f7  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(782)

我创建了一个具有以下属性的表

employee54(
    Emp_Id int, 
    First_name varchar(20),
    Middle_name varchar(20), 
    Last_name varchar(20), 
    Dept_Id int, 
    Phone_number int, 
    Address varchar(30)
)

我试着用这个语法做反向索引

create index emp_id_list on employee54(Emp_Id) reverse;

它显示出
错误1064(42000):您的sql语法有错误;查看与mysql服务器版本相对应的手册,以获得使用“reverse”附近的正确语法

wlp8pajw

wlp8pajw1#

错误消息1064直接指向问题(或者可能直接在问题之后)。
看一下手册就会知道 ASC 以及 DESC 是可能的,不是 reverse .
如果您希望以相反的顺序获取行 emp_id ,然后简单地做 ORDER BY emp_id DESCENDING . 即使8.0之前的版本没有按相反的顺序实现索引创建,这也会得到所需的结果(适用于所有版本的mysql/mariadb)。

hrysbysz

hrysbysz2#

只有mysql 8.0+支持创建和使用“反向”索引。
其他mysqls版本只解析asc或desc部分,但使用它们。
键部件规范可以以asc或desc结尾,以指定索引值是按升序还是降序存储。如果未给定顺序说明符,则默认值为升序。哈希索引不允许使用asc和desc。从mysql 8.0.12开始,空间索引不允许使用asc和desc。
来源https://dev.mysql.com/doc/refman/8.0/en/create-index.html

CREATE INDEX emp_id_list ON employee54(Emp_id DESC)
``` `DESC` 生成一个降序索引,它是“反向”索引。

相关问题