这边分享一些些mysql的经验,欢迎交流学习切磋啊。
1、时间操作
表名:table
字段:birth(格式1989-05-13 )
根据年纪计算岁数
SELECT birth, CURDATE(), (YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5)
选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;
4、数据库
显示数据库
SELECT DATABASE();
显示数据表
SHOW TABLES;
显示数据表结构
DESCRIBE TABLES;
5、MAX函数
显示GROUP BY article中字段price的最大值记录
SELECT article, MAX(price) AS price FROM shop GROUP BY article
6、变量
SELECT @a:=1000;//变量是以@开头的字符,赋值符号是:=
SELECT @a+9;//结果是1009
7、MYSQL里面DATETIME列,写现在时间,与时间加法(分钟)的例子
" INSERT INTO cs (starttime,endtime) VALUES ( NOW() , DATE_ADD( NOW(), INTERVAL 120 MINUTE) ) "