如下表t_user:
name | age |
zhangsan | 1 |
lisi | NULL |
wangwu | 2 |
执行一下sql:
select * from t_user order by age;
name | age |
lisi | NULL |
zhangsan | 1 |
wangwu | 2 |
实际上我们是想将没有填写age的记录放在最后,我们可以
select * from t_user order by age is null, age;
name | age |
zhangsan | 1 |
wangwu | 2 |
lisi | NULL |
为什么会这样?可以这样来理解:
select * from t_user order by age is null, age;
等价于:
select * from (select name, age, (age is null) as isnull from t_user) as foo order by isnull, age;
看出来了吗?
分享到:
相关推荐
我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 ...
例如,在进行复杂的分组排序时,MySQL并没有提供类似于Oracle中的`OVER()`窗口函数,这使得实现某些复杂的数据分析变得较为棘手。本文将详细介绍如何在MySQL中实现类似Oracle中`row_number() over (partition by)`的...
8.4.4.4 排序行 8.4.4.5 日期计算 8.4.4.6 NULL值操作 8.4.4.7 模式匹配 8.4.4.8 行计数 8.4.5 使用多个数据库表 8.5 获得数据库和表的信息 8.6 以批处理模式使用mysql ...
### MySQL常见面试问题详解 #### 1. MySQL简介与特性 ...以上内容涵盖了MySQL面试中常见的几个问题及其解答思路。希望这些知识点能够帮助你更好地理解和掌握MySQL的相关知识,并在面试中表现出色。
总之,要解决MySQL中的中文排序问题,关键在于选择正确的字符集和校对规则,并在查询时使用`CONVERT`函数转换字符集进行排序。确保整个系统(包括数据库、表、字段、客户端和查询)的字符集设置一致,才能实现准确的...
2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
本文将重点分析MySQL中表排序规则不同而导致的错误问题。 首先,了解MySQL中的字符集与排序规则的概念非常关键。字符集是一组符号和编码的规则,它决定了数据如何存储,例如常见的utf8、utf8mb4等。排序规则则是在...
#### 三、MySQL中文编码问题分析 1. **客户端与服务器字符集不匹配**:当客户端连接到MySQL服务器时,如果没有明确指定字符集,则会使用服务器端的默认字符集。如果客户端与服务器端的字符集不同,就可能出现乱码...
+ 7.1.4 NULL值 + 7.1.5 数据库,表,索引,列和别名的命名 # 7.1.5.1 名字的大小写敏感性 o 7.2 用户变量 o 7.3 列类型 + 7.3.1 列类型的存储要求 + 7.3.5 数字类型 + 7.3.6 日期和时间类型 # 7.3.6.1 ...
2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
8.4.4.4 排序行 8.4.4.5 日期计算 8.4.4.6 NULL值操作 8.4.4.7 模式匹配 8.4.4.8 行计数 8.4.5 使用多个数据库表 8.5 获得数据库和表的信息 8.6 以批处理模式使用mysql 8.7 从...
在MySQL中,处理字符串中的数字排序可能会遇到一些特殊的情况,因为MySQL默认会按照字符串的字典顺序进行排序,而不是按照数字的大小。当字段的定义是字符串类型(如VARCHAR),但实际存储的是数字时,如果不做特殊...
在MySQL中,如果我们需要在查询结果中添加一个排序序号,可以利用变量和用户定义变量。以下是一个示例: ```sql SET @rownum = 0; SELECT @rownum:=@rownum+1 AS num, username, stuid, math, english FROM student...
2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
MySQL常规排序、自定义排序和按中文拼音字母...MySQL的自定义排序,str与str1、str2、str3…进行比较,并按照str1,str2,str3…的顺序输出,如果遇到str为null或者不存在str1,str2,str3…中的情况的则序列为0, eg: S
在本文中,我们将对 MySQL 数据库考试试题及答案进行详细的解析,并总结出相关的知识点。 1.数据库聚合函数 在 MySQL 中,聚合函数用于对数据进行汇总和计算。 SUM 函数用于计算数据的总和,MAX 函数用于取得最大...
在MySQL中,字符集(Character Set)是指一个字符集合以及如何将这些字符编码为数字值,而排序规则(Collation)则是一组用于比较字符的规则。解决MySQL中文乱码问题的关键在于正确设置和使用字符集与排序规则。 - ...