这个查询:
SELECT * FROM table WHERE field = 'EN'
我想以相反(desc)的顺序修改选择,将其物理插入到数据库中,而不使用任何索引(例如:DESC NO-INDEX)?
是否可以?
除非您有一个反映物理插入顺序的列,否则您不能(使用或不使用索引)。
您只能按查询包含的数据对查询进行排序。如果您没有存储插入时间戳或某种形式的 id,则无法生成所需的订单。
MyISAM 使用插入顺序存储项目,并用新的行填充已删除的行(您可以在 select * from... without order 中看到它)。默认情况下,插入顺序未保存在数据库中(如果您想使用自动增量字段来存储此顺序,您可以)。
INNODB 按 PK 存储行,因此select ... from ... order by PK desc
无论何时插入行,您都可以。
由于数据库中的各种空间重用策略,这实际上是不可能的。可能最接近您的是读取没有指定任何顺序的记录,然后以相反的方向遍历您的结果集。