mysql后接特殊条件的用法
来源:互联网 发布:阿里云更改个人资料 编辑:程序博客网 时间:2024/05/04 10:03
————————————————————本文作者原创,转载请注明出处————————————————
mysql 可以进行order by 排序,通常后面只会接字段
如 select * from table order by name;
但是如果有复合排序的时候后面会要接一些更负责的条件,单纯用字段便无法满足,如:
SELECT
TITLE,
CJSJ,
date_format(cjsj2, '%Y-%m-%d %H') '时间戳',
FMJB
FROM
nms_key_info
WHERE
CJSJ BETWEEN '2017-2-22 00:00:00'
AND '2017-2-22 23:59:59'
ORDER BY
cjsj BETWEEN '2017-2-22 11:00:00'
AND '2017-2-22 11:30:00' desc ,
date_format(cjsj, '%Y-%m-%d %H') DESC,
FMJB DESC,
CJSJ DESC
这段语句的后面order by 后面接了一个时间的区间,是要把指定的时间区间内的数据排到最上面,然后其余的数据按照后面排序规则经行排序
但是,这种写法在mysql可以用,hibernate中的hql语句就会报错,我测试了很久又发现一种写法两者都可以使用,
SELECT
TITLE,
CJSJ,
date_format(cjsj2, '%Y-%m-%d %H') '时间戳',
FMJB,
(case when CJSJ BETWEEN '2017-2-22 11:00:00' and '2017-2-22 11:30:00' then 1 ELSE 2 END ) 'lev'
FROM
nms_key_info
WHERE
CJSJ BETWEEN '2017-2-22 00:00:00'
AND '2017-2-22 23:59:59'
ORDER BY
(case when CJSJ BETWEEN '2017-2-22 11:00:00' and '2017-2-22 11:30:00' then 1 ELSE 2 END ) ,
date_format(cjsj, '%Y-%m-%d %H') DESC,
FMJB DESC,
CJSJ DESC
使用case when 来经行级别排序,把指定的时间区间内的数据
1 0
- mysql后接特殊条件的用法
- MySql中特殊的SQL用法
- mysql中where字句的特殊用法
- mysql IF()特殊用法
- MySQL 特殊用法
- javascript的特殊条件语句
- shell中括号的特殊用法 linux if多条件判断
- Oralce 和mysql 相应的函数,特殊用法解决方案
- mysql中order by的一些特殊用法
- google 的特殊用法
- scanf 的特殊用法
- ^ 符号的特殊用法
- echo的特殊用法
- perl的特殊用法
- #define的特殊用法
- echo的特殊用法
- define的特殊用法
- printf的特殊用法
- RabbitMq学习笔记(六)—— RPC调用
- SQL Server 2005之不能启动远程连接
- 探究Struts2运行机制:StrutsPrepareAndExecuteFilter 源码剖析
- sqlserver 将一个字段下的多行语句合并成一条数据
- 通向架构师的道路(第八天)之weblogic与apache的整合与调优
- mysql后接特殊条件的用法
- sql知识
- 通过bitset输出二进制数
- 【C#】关闭 Window 之后,无法设置 Visibility,也无法调用 Show、ShowDialogor 或 WindowInteropHelper.EnsureHandle
- Linux内核多线程(一)
- 使用 git 命令行工具创建一个 Android 工程
- ViewPager 详解(三)---PagerTabStrip与PagerTitleStrip添加标题栏的异同
- Ajax提交与传统Form表单提交的区别说明
- java多图片上传功能的实现