4brightdays 发表于 2014-10-28 17:11

mysql能修改表的默认排序规则么

我检索数据的时候比如 select acolumn from tablename where revision = 'xxxxx'
如果这个revision有多条 输出的结果貌似是按id升序排列的

我想实现查询的时候默认按降序排列,最新的结果显示在最前面。但不修改select语句,还用前面的:
select acolumn from tablename where revision = 'xxxxx'

有方法么?
我试了网上查到的alter table tablename order by id desc不行。。。

求解答。。。谢谢

action08 发表于 2014-10-29 13:19

自己select的时候order,

如果要修改默认的规则,那么就从create index开始,这个情况可能会有点复杂了,
首先看你的select语句,会采用那个index,然后修改啊

chengchow 发表于 2014-10-29 13:39

本帖最后由 chengchow 于 2014-10-29 13:46 编辑

select acolumn from tablename where revision = 'xxxxx' order by id desc ;

alter table tablename add index index_name (id) desc;

4brightdays 发表于 2014-10-30 15:59

本帖最后由 4brightdays 于 2014-10-30 16:00 编辑

不能在select语句里面添加order by, 那个要去改程序很麻烦,所以我就想用这种方法规避改程序
怎么查看select语句用的哪个index?
我用楼下的方法创建了id的降序index 但是不用order by的时候查询出来还是升序排列

因为这个表不是给正式的流程用的 不想因为这东西去改程序
回复 2# action08


   

4brightdays 发表于 2014-10-30 16:01

我按您的指示创建了id的降序索引 不带order by查询还是升序排列。。。。
回复 3# chengchow


   

chengchow 发表于 2014-10-30 16:50

本帖最后由 chengchow 于 2014-10-30 16:52 编辑

好像是这问题,我看看!

4brightdays 发表于 2014-10-31 09:35

怎么样?这种方法可行吗?
回复 6# chengchow


   

chengchow 发表于 2014-10-31 15:06

本帖最后由 chengchow 于 2014-10-31 15:31 编辑

回复 7# 4brightdays
测试了下确实只能顺序排列,不知道为什么逆序不成功
最近有些事需要忙,你要不自己去查下资料,看看我是不是漏了什么


   

4brightdays 发表于 2014-11-03 17:10

谢谢啦。
我查了下,mysql虽然在创建索引的时候给出了desc关键字,是为了以后扩展,并没有实现这个功能。坑爹啊。
回复 8# chengchow


   
页: [1]
查看完整版本: mysql能修改表的默认排序规则么