【发布时间】:2019-10-06 18:23:18
【问题描述】:
我正在尝试按标题对数据库中的项目进行排序。项目是iphone 5,iphone 6/6S,iphone 11,..
当我使用代码对项目进行排序时
SELECT *
FROM ".FPD_PRODUCTS_TABLE."
ORDER BY `title` ASC
我得到了结果
iPhone 11
iPhone 5
Iphone 6/6S
...
我也试过按字符长度排序,但我又得到了错误的顺序。
我怎样才能得到正确的ASC 订单:
iphone 5
iphone 6/6S
iphone 11
...
【问题讨论】:
-
在 SQL 中实现良好的自然排序总是很棘手。另请参阅 Why should I provide a Minimal Reproducible Example for a very simple SQL query?
-
.. 还可以考虑在 PHP 中进行排序,而不是有一个自然的排序功能。 -> natsort()
-
另一种方法是添加另一列来指定排序顺序。
-
感谢您的意见。我现在正在查看此选项以添加新列进行排序。
-
其实目前并没有排序错误。这些是字符串,它正在对它们进行排序。例如,当将 11 和 5 排序为字符串时,它涉及到第一个字符,其中 1
标签: php mysql sql natural-sort