【问题标题】:Order by one of the keys of composite primary key按复合主键的键之一排序
【发布时间】:2013-08-05 18:07:18
【问题描述】:

我有一个表,列名为 like,

    month    year    id    updated_by
-------------------------------------------
    02     2012     1       'entity1'
    03     2012     2        'e2'

其中复合键是monthyearid。现在我想按id升序排序。

但使用order by id 不会产生按id 排序的结果集。

我在这里缺少什么?很高兴有任何帮助引导我找到答案。

编辑:我使用的是 MySQL 5.0

【问题讨论】:

  • 在哪里排序,直接在表中还是作为查询的结果集?什么是数据库后端,它可能会对正确答案产生影响。
  • @HLGEM 在表中。我忘了说我使用的是 MySQL 5.0
  • id 是整数列还是 VARCHAR

标签: mysql sql mysql-5.0 sql-order-by


【解决方案1】:

评论太长了。

你是说查询:

select *
from t
order by id

不是id 对表格进行排序。如果是这样,这表明 MySQL 中存在错误,这不太可能。

一些想法:

(1) 也许您在子查询中执行此操作。在子查询中完成时不保证排序。

(2) 也许您期望id 上的排序按复合索引的元素排序。那将是一个错误的期望。按您想订购的东西订购。

(3) 也许 id 被存储为字符串,但只包含数字。如果是这样,那么'10' 将在'9' 之前。

你能说明你正在使用什么查询以及你得到的结果吗?

【讨论】:

  • 我在 id 列中使用 varchar 时出错了。不过,您的回答很有帮助并涵盖了它。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 2017-05-24
  • 1970-01-01
相关资源
最近更新 更多