MYSQL的情况下

̲̳

我有一个这样的数据表

----------------------------------------------------------
|   userID   |      dateTime       |   val1    |   val2   |
----------------------------------------------------------
|    abc     | 2014-10-20 00:00:00 |   21.5    |   18.5   |
|    ijk     | 2014-10-21 00:00:00 |   22.5    |   17.5   |
|    pqr     | 2014-10-22 00:00:00 |   23.5    |   16.5   |
|    xyz     | 2014-10-23 00:00:00 |   24.5    |   14.5   |
----------------------------------------------------------

我想通过排序表dateTimedesc orderval1asc orderval2asc order,但如果用户ID匹配我要上总是独立于其他领域的顶级该行。

为此,我有这样的查询

Select * 
from mytable 
order by case 
           when userID = 'abc' then 1
           else 'ordeyByField' end 'order';    
WHERE orderByField = dateTime or val1 or val2 
For dateTime, order = desc
        and
    for val1 or val2, order = asc

当我使用val1或val2对其进行排序时,这很好(因为顺序为asc),但是当我使用dateTime对其进行排序时,它最后显示了匹配的userID行(因为顺序为desc)。我希望匹配的用户ID行始终始终位于顶部。

托斯滕·凯特纳(Thorsten Kettner)

您已经接近了,并且比您想象的要容易:-)

Select * 
from mytable 
order by case when userID = 'abc' then 0 else 1 end, dateTime desc, val1, val2;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MYSQL的情况下

来自分类Dev

MySQL情况下的条件

来自分类Dev

在没有sudo的情况下执行mysql

来自分类Dev

为什么在我的情况下mysql分区无效

来自分类Dev

MySQL批量更新的性能改进(当..情况下)

来自分类Dev

MySQL在多个情况下的增量值排序

来自分类Dev

MySQL:在我的情况下需要帮助查询

来自分类Dev

mysql,仅在存在的情况下如何选择

来自分类Dev

默认情况下,MySQL在哪里存储.sql文件?

来自分类Dev

Mysql Bulk更新性能改进(当..情况下)

来自分类Dev

如何在不使用mysql的情况下使用表

来自分类Dev

mysql SELECT列仅在存在的情况下

来自分类Dev

在不使用MYSQL计数的情况下查找记录数

来自分类Dev

在没有sudo的情况下执行mysql

来自分类Dev

在mysql中多情况下更新为空

来自分类Dev

情况下的MySQL参数始终为NULL

来自分类Dev

在这种情况下如何使用 mySQL ORDER BY

来自分类Dev

选择情况下,COUNT(*)

来自分类Dev

在加和情况下

来自分类Dev

在加和情况下

来自分类Dev

选择情况下,COUNT(*)

来自分类Dev

在向量情况下xlswrite

来自分类Dev

SQL情况下的问题

来自分类Dev

在不使用联合mysql的情况下将行添加到结果集中

来自分类Dev

我如何在没有任何联接的情况下优化大型MySQL表中的查询?

来自分类Dev

如何在没有PHP,jQuery的情况下将画布图像保存到MySQL

来自分类Dev

MySQL连接即使在应有的情况下也不会返回结果

来自分类Dev

如何在不将所有行加载到内存的情况下使用node-mysql?

来自分类Dev

MySQL:使用SUM B联接(A,B),但在某些情况下B不存在行