Mysql查询例子
2014-01-13 16:06
411 查看
近两天在看“MYSQL技术内幕”,里面有些不错的例子,我想仅看一下是不够的,动手写一写会加深理解。
1,序号问题
比如有这样一个表:
+-----+
| a |
+-----+
| 1 |
| 2 |
| 3 |
| 100 |
| 101 |
| 103 |
| 104 |
| 105 |
+-----+
要求给其添加一个序号列。
SQL语句可以这样写:
mysql> select a,@a:=@a+1 num from nianxu,(select @a:=0) as b;
+-----+-----+
| a | num |
+-----+-----+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 100 | 4 |
| 101 | 5 |
| 103 | 6 |
| 104 | 7 |
| 105 | 8 |
+-----+-----+
8 rows in set
还有另一种写法也行:
select a,(select count(*) from nianxu as table1 where table1.a<=table2.a) as num from nianxu as table2;
2,在第1个问题的基础上(表不变)找出连续的范围,像这样:
start end
1 3
100 101
103 105
也就是找出各个连续段的最小值与最大值
SQL语句可以这样写:
SELECT MIN(a) as start,MAX(a) as end FROM
(SELECT a,num,a-num as diff FROM
(SELECT a,@a:=@a+1 as num FROM nianxu,(SELECT @a:=0) as a)
as b
) as c
GROUP BY diff;
最后结果是:
+-------+-----+
| start | end |
+-------+-----+
| 1 | 3 |
| 100 | 101 |
| 103 | 105 |
+-------+-----+
3 rows in set
上面的SQL语句可以先看里层后看外层。
先写这几个吧,以后再加几个。
1,序号问题
比如有这样一个表:
+-----+
| a |
+-----+
| 1 |
| 2 |
| 3 |
| 100 |
| 101 |
| 103 |
| 104 |
| 105 |
+-----+
要求给其添加一个序号列。
SQL语句可以这样写:
mysql> select a,@a:=@a+1 num from nianxu,(select @a:=0) as b;
+-----+-----+
| a | num |
+-----+-----+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 100 | 4 |
| 101 | 5 |
| 103 | 6 |
| 104 | 7 |
| 105 | 8 |
+-----+-----+
8 rows in set
还有另一种写法也行:
select a,(select count(*) from nianxu as table1 where table1.a<=table2.a) as num from nianxu as table2;
2,在第1个问题的基础上(表不变)找出连续的范围,像这样:
start end
1 3
100 101
103 105
也就是找出各个连续段的最小值与最大值
SQL语句可以这样写:
SELECT MIN(a) as start,MAX(a) as end FROM
(SELECT a,num,a-num as diff FROM
(SELECT a,@a:=@a+1 as num FROM nianxu,(SELECT @a:=0) as a)
as b
) as c
GROUP BY diff;
最后结果是:
+-------+-----+
| start | end |
+-------+-----+
| 1 | 3 |
| 100 | 101 |
| 103 | 105 |
+-------+-----+
3 rows in set
上面的SQL语句可以先看里层后看外层。
先写这几个吧,以后再加几个。
相关文章推荐
- 中文乱码SSH+MYSQL
- 自动安装并配置ODBC的思路与实现(自动创建MysqlDSN )
- mysql图文安装教程
- mysql date_format
- 最简单的MySQL replication配置过程.
- 开启、关闭数据库mysql
- mysql主从配置
- jdbc连接mysql时报message from server: "Host '**' is not allowed to connect to this MySQL server"错误解决
- mysql开启远程访问的方法
- mysql查询今天、昨天、7天、近30天、本月、上一月 数据
- mysql 如何修改字符串为 utf8
- 如何测试mysql是否安装成功
- ssh+mySQL中文乱码
- mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择
- cmd链接mysql
- 如何设置远程访问mysql
- MySQL数据库中的5种数据类型简介
- mysql选取指定月份的数据
- Mysql常用命令行大全
- MySQL数据库备份与还原的命令