标签: sql-order-by

MySQL的最佳实践问题:按ID或日期排序?

这是一个无聊的问题,但是我从来没有得到过直接的回答.

假设我有一个包含以下字段和值的数据库表:

| id | date_added          | balance |
+------------------------------------+
|  1 | 2009-12-01 19:43:22 | 1237.50 |
|  2 | 2010-01-12 03:19:54 |  473.00 |
|  3 | 2010-01-12 03:19:54 | 2131.20 |
|  4 | 2010-01-20 11:27:31 | 3238.10 |
|  5 | 2010-01-25 22:52:07 |  569.40 |
+------------------------------------+    
Run Code Online (Sandbox Code Playgroud)


这是一个非常基本的"会计"子系统.我想获得最新的余额.该id字段设置为auto_increment.通常,我会使用:

SELECT balance FROM my_table ORDER BY date_added DESC LIMIT 1;

但我需要确保返回的值是最新的...(参见上面的id#2和3)

1)我会更好地使用:

SELECT balance FROM my_table ORDER BY id DESC LIMIT 1;

2)或者这是一个更好的解决方案?:

SELECT …

mysql sql-order-by

11
推荐指数
1
解决办法
2万
查看次数

使用UNION ALL进行分组和排序

我有一个存储过程与以下查询:

SELECT (sum(addition)) AS [COUNT], 
MAX(CONVERT(VARCHAR(12),CREATED,102)) as [date]
FROM [TABLE_ONE]
WHERE convert(VARCHAR(12),CREATED,102) BETWEEN CONVERT(date,@startdate) AND CONVERT(date,@enddate)
AND [ServiceID]=@serid
GROUP BY CONVERT(VARCHAR(12),CREATED,102) 
ORDER BY  CONVERT(VARCHAR(12),CREATED,102)  
Run Code Online (Sandbox Code Playgroud)

我需要做一个union all,所以我可以从两个表中获得结果的总和,并且我希望结果按照相同的方式进行分组和排序.

这不起作用:

SELECT (sum(addition)) AS [COUNT], 
MAX(CONVERT(VARCHAR(12),CREATED,102)) as [date]
FROM [TABLE_ONE]
WHERE convert(VARCHAR(12),CREATED,102) BETWEEN CONVERT(date,@startdate) AND CONVERT(date,@enddate)
AND [ServiceID]=@serid
GROUP BY CONVERT(VARCHAR(12),CREATED,102) 
ORDER BY  CONVERT(VARCHAR(12),CREATED,102)  

UNION ALL

SELECT (sum(addition)) AS [COUNT], 
MAX(CONVERT(VARCHAR(12),CREATED,102)) as [date]
FROM [TABLE_TWO]
WHERE convert(VARCHAR(12),CREATED,102) BETWEEN CONVERT(date,@startdate) AND CONVERT(date,@enddate)
AND [ServiceID]=@serid
GROUP BY CONVERT(VARCHAR(12),CREATED,102) 
ORDER BY  CONVERT(VARCHAR(12),CREATED,102) 
Run Code Online (Sandbox Code Playgroud)

我想订购整体结果,并按日期分组.

sql group-by sql-order-by sql-server-2008 union-all

11
推荐指数
1
解决办法
3万
查看次数

MySQL通过id指定任意顺序

是否可以为MySQL SELECT语句指定任意顺序?例如,

SELECT * FROM table_name WHERE id IN (1, 3, 2, 9, 7) ORDER BY (1, 3, 2, 9, 7);
Run Code Online (Sandbox Code Playgroud)

直接列出的数字的顺序IN似乎并不重要.

mysql sql-order-by where-in

10
推荐指数
2
解决办法
4341
查看次数

订购Unix时间戳DESC或ASC?

我有新闻项,在创建时将以unix时间戳格式创建日期/时间的时间添加到数据库中.如果我想按最近的顺序排序,我会在我的mysql查询中使用ASC或DESC吗?

编辑:

谢谢大家的回复.我现在知道了.我会让Sarfraz回答他接受的解决方案,因为他是第一个回复,但感谢其他人:).必须等待11分钟才能接受它作为解决方案.

mysql sql sql-order-by unix-timestamp

10
推荐指数
2
解决办法
2万
查看次数

MySQL ORDER BY COUNT()?

我的数据库中有一个表设置这个结构(http://cl.ly/3D1D3m1O0v3d0x2j0Z0E)

我通过while循环运行查询,我想按prof列的计数排序.

这是我的查询目前的样子,虽然我不断收到错误.

$order_list = mysql_query("
    SELECT COUNT(prof), 
    FROM prof_rating 
    ORDER BY COUNT(prof) ASC");
Run Code Online (Sandbox Code Playgroud)

这是我不断得到的警告.

警告:mysql_fetch_assoc()期望参数1是资源,布尔值在

mysql sql-order-by

10
推荐指数
2
解决办法
2万
查看次数

在Django中,如何通过多选CharField以任意非字母顺序排序?

想象一下Shirts带有sizeCharField 的模型,其值仅限于少量选择,例如"小","中","大","xlarge"等.

要按尺寸分组衬衫,您需要:

Shirts.objects.order_by('size')
Run Code Online (Sandbox Code Playgroud)

但是Django会(自然地)按字母顺序对这些组进行排序,即"大"然后"中"然后"小"然后"xlarge".我想要的是在'大'之前'中'之前'小'等.

即我自然想要做的是类似下面的伪代码:

size_order = {'small': 1, 'medium': 2, 'large': 3, 'xlarge': 4}
Shirts.objects.order_by('size_order[size]')
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?

编辑:请参阅我的评论以获取有关各种建议方法的想法.我使用我正在调查的SQL ORDER BY CASE语法偶然发现了一个自定义的Manager/QuerySet方法.

django sql-order-by django-models

10
推荐指数
1
解决办法
3817
查看次数

按日期时间命令mysql

我有一个包含datetime字段类型的表,我想对select语法进行排序取决于它的降序,如下所示:

2012-12-12 01:44:20

2012-12-11 01:44:40

2012-12-10 01:40:36

2012-12-09 12:28:19

2012-12-09 12:19:21

2012-12-09 12:11:50

2012-12-09 12:00:11

2012-12-09 11:59:26

2012-12-09 11:57:08

2012-12-09 11:55:21

mysql datetime sql-order-by

10
推荐指数
2
解决办法
4万
查看次数

如何在MongoDB上按字符串长度对结果进行排序

我可以在mysql上轻松完成

select * from TABLE order by length(FIELD) asc
Run Code Online (Sandbox Code Playgroud)

我怎么能在MongoDB上做到这一点?

sql-order-by mongodb

10
推荐指数
2
解决办法
4386
查看次数

AngularJS和带有特殊字符的ng-repeat中的orderby

我在排序包含不是英文字母的字符串时遇到问题(š,č,ž,..)

这是小提琴:http://fiddle.jshell.net/vhhgh/

这些字母来自斯洛文尼亚字母.

localization sql-order-by angularjs

10
推荐指数
2
解决办法
5111
查看次数

Django queryset order_by 日期接近今天

我想在顶部显示接近今天日期的记录,然后在底部显示过去的所有记录:

今天
明天
明天+1

.
.
昨天
昨天 -1

python sorting django sql-order-by

10
推荐指数
1
解决办法
1万
查看次数