首页 > mysql > sql语句的常用技巧

sql语句的常用技巧

作者:bin
目录
[隐藏]

这里提供一些日常工作中可能会使用到的sql技巧

一、正则表达式的使用

regexp语句返回0即表示匹配成功,1匹配失败

mysql> select 'dada' regexp '^a';
+--------------------+
| 'dada' regexp '^a' |
+--------------------+
| 0 |
+--------------------+

示例:查找name以ben开头的user

select * from user where name regexp '^ben';

二、巧用rand()提取随机行

我们可以使用

SELECT * FROM `table` WHERE order by rand();

但是这样效率会很低,所以还有以下实现方式:

我们先取出最大的id,然后用随机数去乘他,得到的记过为最小行,这样就可以随机取出一行了;

SELECT * FROM `table` WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`))) ORDER BY id LIMIT 1;

三、使用group by和with rollup 语句

使用group by对数据进行分组统计

统计对应购买日期对购买数量:

SELECT buy_date,count(id) FROM `tbl` group by buy_date order by buy_date desc

使用with rollup获取分组对聚合信息

SELECT buy_date,count(id) FROM `stock_pool` group by buy_date with ROLLUP

得到的结果最后一行

null  2345

显示统计了所有结果,如果此处使用2个类型进行分组,就会聚合出各个不同的分组的总和;

 

您必须 [ 登录 ] 才能发表留言!