ifnull(判断是否为空)
select IFNULL("1111","22") as value ; -- 输出111
select IFNULL(null,"22") as value ; -- 输出 22
IFNULL(expression, alt_value)
第一个参数表示判断是否为空的值,第二个参数是为空时返回的值
datediff (求日期相差天数)
- 返回两个日期之间相差的天数
select datediff('2021-09-28 00:00:00','2020-01-21 00:00:00') -- 输出 616
编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id 返回结果
输入:
Weather 表:
±—±-----------±------------+
| id | recordDate | Temperature |
±—±-----------±------------+
| 1 | 2015-01-01 | 10 |
| 2 | 2015-01-02 | 25 |
| 3 | 2015-01-03 | 20 |
| 4 | 2015-01-04 | 30 |
±—±-----------±------------+
输出:
±—+
| id |
±—+
| 2 |
| 4 |
±—+
解释:
2015-01-02 的温度比前一天高(10 -> 25)
2015-01-04 的温度比前一天高(20 -> 30)
SELECT
a.id
FROM
Weather a
INNER JOIN Weather b ON DATEDIFF( a.recordDate, b.recordDate ) = 1 --日期相差一天
AND a.Temperature > b.Temperature -- 温度大于前一天
limit 和 offset(分页)
- 取查询的前三条记录
select* from user limit 3
- 取1后面的第2,3,4三条条数据
select * from user limit 1,3;
或者使用ofset
select * from user limit 3 offset 1;
limit 的两个参数,第一个数表示要跳过的数量,后一位表示要取的数量
offset 表示跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据