关闭

mysql 一些常见应用 concat/@a/case/limit/

1171人阅读 评论(0) 收藏 举报

 

use test;
create table tt
(f1 varchar(30), f2 int );

INSERT  tt values('a',1);
INSERT  tt values('a',1);
INSERT  tt values('a',2);
INSERT  tt values('a',1);
INSERT  tt values('b',1);
INSERT  tt values('b',1);
INSERT  tt values('b',1);

mysql> select * from tt;
+------+------+
| f1   | f2   |
+------+------+
| a    |    1 |
| a    |    1 |
| a    |    2 |
| a    |    1 |
| b    |    1 |
| b    |    1 |
| b    |    1 |
+------+------+
7 rows in set (0.00 sec)

mysql> select @a:=f1,@b:=f1 from tt order by f1 limit 1;
+--------+--------+
| @a:=f1 | @b:=f1 |
+--------+--------+
| a      | a      |
+--------+--------+
1 row in set (0.00 sec)

mysql> select case flag when 0 then '' else concat('total ',@b,':') end,@b:=f1,f1,f2 from (select f1,f2,(case f1 when @a then 0 else 1 end) flag ,@a:=f1 from tt order by f1 ) tb;
+-----------------------------------------------------------+--------+------+------+
| case flag when 0 then '' else concat('total ',@b,':') end | @b:=f1 | f1   | f2   |
+-----------------------------------------------------------+--------+------+------+
|                                                           | a      | a    |    1 |
|                                                           | a      | a    |    1 |
|                                                           | a      | a    |    2 |
|                                                           | a      | a    |    1 |
| total a:                                                  | b      | b    |    1 |
|                                                           | b      | b    |    1 |
|                                                           | b      | b    |    1 |
+-----------------------------------------------------------+--------+------+------+
7 rows in set (0.00 sec)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:304290次
    • 积分:4931
    • 等级:
    • 排名:第5724名
    • 原创:181篇
    • 转载:0篇
    • 译文:0篇
    • 评论:21条
    文章分类