http://bbs.8isp.cn/simple/index.php?t372.html
今天看了下mysql5的英文手册,虽然只看了一点点,还是要分享一下其中比较实用的东西。为了方便大家学习,举出下面给出一些例子。大家看着用就行了。特别是被很多程序员忽略的mysql变量,那可真是个好东西呀。
1、时间操作
表名:table
字段:birth(格式1989-05-13 )
根据年纪计算岁数
SELECT birth, CURDATE(), (YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5)<RIGHT(birth,5)) AS age FROM pet ORDER BY age
选5月出生的记录
SELECT name, birth FROM pet WHERE MONTH(birth) = 5
选当前月的下一个月,月数
SELECT MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH));
日期函数
SELECT NOW();//'1997-12-15 23:50:26'
SELECT NOW() + 0;//19971215235026
2、通配符‘_’
查找5个字符的记录
SELECT * FROM pet WHERE name LIKE '_____';
3、正则
显示字段name以B字符开头的记录(不区分大小写)
SELECT * FROM pet WHERE name REGEXP '^b';
显示字段name以B字符开头的记录(区分大小写,二进制匹配)
SELECT * FROM pet WHERE name REGEXP BINARY '^b';
显示字段name以fy字符结尾的记录
SELECT * FROM pet WHERE name REGEXP 'fy$';
显示字段name带有w字符的记录(REGEXP 'w'相当于like '%w%')
SELECT * FROM pet WHERE name REGEXP 'w';
显示字段name只包括5位字符的记录
SELECT * FROM pet WHERE name REGEXP '^.....$';
SELECT * FROM pet WHERE name REGEXP '^.{5}$';
count统计记录同时匹配species, sex两字段(两字段值一样时,count才工作)GROUP的记录
SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
3、数据库
显示数据库
SELECT DATABASE();
显示数据表
SHOW TABLES;
显示数据表结构
DESCRIBE TABLES;
4、MAX函数
显示GROUP BY article中字段price的最大值记录
SELECT article, MAX(price) AS price FROM shop GROUP BY article
5、变量
SELECT @a:=1000;//变量是以@开头的字符,赋值符号是:=
SELECT @a+9;//结果是1009