php - MySQL 对除一行之外的所有行进行排序

标签 php mysql sorting sql-order-by

我正在尝试按升序从数据库中检索项目编号。

行看起来像这样:

-- project number --
       1199.7
       1053.2
       1020
       1023-D
       1023-C
       1023-B
       50
       34.3T
       870-W

这是我检索和排序数据的查询:

$this->db->select('Project');
$this->db->from('`active_projects`');
$this->db->order_by('Project + 0, Project');

部分表格的输出:

enter image description here

我的问题是,为什么127卡在中间而不是顶部?我认为它看起来与 1270 相同,只是没有附加 0,但我不确定。有人可以帮我解决这个问题吗?

最佳答案

因为您的数据类型是字符串并按字母顺序排序。

使用 order_by('cast(Project as UNSIGNED), Project');

关于php - MySQL 对除一行之外的所有行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34076514/

相关文章:

php - 将带有 URL 变量的超链接添加到数据表(jQuery)+搜索不起作用

php - is_array for MySQL Select Statement with PHP

mysql - 如何使用 GenericContainer 配置 spring 数据源,该 GenericContainer 从自定义 MySQL Docker 镜像创建容器

php - MySql 查询连接两个表并将两行合并为一个

mysql - 如何使用带有时间戳的MySQL减去库存和销售

sorting - 在 MarkLogic 中排序时如何忽略 "stop words"?

php - Joomla 3 隐藏特定页面的内容

php - 无法插入mysql数据库

algorithm - Franceschini 方法如何运作?

mysql - 正确排序 MySQL 结果(可能需要子查询)