2016-11-28 42 views
0

是否可以更改表以便任何通用查询将返回未索引列或主键排序的数据?我想按列自动排序(非主键)

SELECT * from <table> 

有相同的顺序

SELECT * from <table> ORDER BY <misc_col> 

,而不损害表或任何当前键的完整性。要做到这一点

+2

SQL表和结果集表示*无序*集。如果你想以正确的顺序得到结果,可以添加一个'ORDER BY'。这是做到这一点的唯一安全方法。 –

+0

感谢您对基础的重视。我认为这个问题只能通过重新定义我的表格结构来解决(或者创建一个视图) – Anna

回答

0

一种方法是使用一个view

create view v_table as 
    select t.* 
    from t 
    order by col; 

许多数据库要么忽略这样的order by或不允许的语法。但是,MySQL允许从视图中选择语法并按照所需的顺序返回结果。

注意:t(col)上的索引应提高性能。

+1

应该注意的是,任何对视图施加强制自己的命令的调用都会覆盖视图的顺序。 – xQbert