【发布时间】:2018-06-05 21:07:16
【问题描述】:
我在数据库中有一个表,其中一列将 ID 存储为 varchar。当我使用 PHP 从 db 获取数据并将其显示在 HTML 表中时,我希望它按 ID 排序。最后记录被排序,但是以一种奇怪的方式..:
ID name
------------------
|AA120 | |
|AA121 | |
|AA122 | |
|AA1199 | |
|AA119 | |
|AA1200 | |
|AA1201 | |
|AA1202 | |
etc.
我在查询中使用这个字符串:
ORDER BY CONVERT('$ID',UNSIGNED INTEGER)
是否有解决此类问题的方法..?
【问题讨论】:
-
varchar的 id 排序正确。您是否考虑过使用intids? -
最好将 PK 分成数字和非数字组件 - $id 是什么!?!?!?
-
是的,但是某些 id 可以在它们的末尾添加索引,例如 A 或 B...
-
那么,更复杂的是,您的数据集没有代表性?
-
Id 由产品类型和编号组成,它们是 db 中的两个独立列,并存储为 int 和 varchar...
标签: php mysql html-table