一、数学函数

计算数字的二进制:select bin(7);

mysql 二进制字段 查询 mysql二进制函数_mysql 二进制字段 查询


计算数字的十六进制:select hex(28);

mysql 二进制字段 查询 mysql二进制函数_取整_02


对小数向下取整:select floor(3.23);

mysql 二进制字段 查询 mysql二进制函数_字符串_03


对小数向上取整:select ceiling(3.23);

mysql 二进制字段 查询 mysql二进制函数_bc_04


随机函数:rand()返回0~1的随机数

返回5~15之间的随机整数:select floor(rand()*10+5);

mysql 二进制字段 查询 mysql二进制函数_mysql_05


拼接函数:concat(s1,s2…sn)字符串s1、s2…sn连接成一个字符串

group_concat()默认用逗号连接
把goods表第4个栏目下的goods_id连接起来:

select group_concat(goods_id) from goods where cat_id=4 group by cat_id;

mysql 二进制字段 查询 mysql二进制函数_字符串_06

二、字符串函数

计算字符的ASCII码:select ascIi('A');

mysql 二进制字段 查询 mysql二进制函数_bc_07


计算字符串的个数(字节长度):select length('中华民国');

mysql 二进制字段 查询 mysql二进制函数_字符串_08

select tname,length(tname) from t;

mysql 二进制字段 查询 mysql二进制函数_mysql 二进制字段 查询_09


从上面两张图可以发现:“中华民国”4个字的字符串长度是 8,而“国安”2个字的字符串长度是6。这是以为客户端默认编码是GBK,GBK1个字符占2个字节。t表的编码格式是UTF8,UTF8是1个字符占3个字节。计算字符数:select char_length('中华民国');

mysql 二进制字段 查询 mysql二进制函数_bc_10


位置函数:position(‘a’ in ‘abc’)

select position('@' in  'abc@sina.com');

mysql 二进制字段 查询 mysql二进制函数_bc_11


位置函数:right(s,n)返回字符串s后的n个字符(从右往左数的n个字符)

select right('abc@sina.com',8);

mysql 二进制字段 查询 mysql二进制函数_字符串_12


真实案例:某网站有email字段,存邮箱地址,想调查163,126,qq,gmail的比例

mysql 二进制字段 查询 mysql二进制函数_mysql_13

select *,right(email,length(email)-position('@' in email)) from t;

mysql 二进制字段 查询 mysql二进制函数_取整_14

三、日期时间函数

datetime格式:select now();

mysql 二进制字段 查询 mysql二进制函数_取整_15


date格式:select curdate();

mysql 二进制字段 查询 mysql二进制函数_字符串_16


time格式:select curtime();

mysql 二进制字段 查询 mysql二进制函数_字符串_17


查看某日是那一周的第几天:select dayofweek('2020-03-15');

mysql 二进制字段 查询 mysql二进制函数_bc_18


计算今天是一年的第几周:select week(curdate());

mysql 二进制字段 查询 mysql二进制函数_字符串_19


按周统计加班时间

mysql 二进制字段 查询 mysql二进制函数_mysql 二进制字段 查询_20

select week(dt),sum(num) from jiaban group by week(dt);

mysql 二进制字段 查询 mysql二进制函数_bc_21


四、控制流程函数

mysql 二进制字段 查询 mysql二进制函数_mysql 二进制字段 查询_22


如上图,性别是 用文字表示的,是否可以用数字0/1表示

select sname,
case gender
when '男' then 1
when '女' then 0
else 2 end
from  member;

mysql 二进制字段 查询 mysql二进制函数_mysql 二进制字段 查询_23


表里面的代码我也不知道为什么会出现。

IF函数:
if(表达式,A,B)表达式为真,返回A,否则返回B
if null(‘表达式’,A)判断表达式是否为null,如果是返回A;如果不是,返回自身。

判断性别,女士优先

select sname,if(gender='女','优先','等待') as vip from member;

五、系统调试函数

返回用户及所在主机,判断自己身份:select user();

mysql 二进制字段 查询 mysql二进制函数_mysql_24


返回正在操作的库名:select database();

mysql 二进制字段 查询 mysql二进制函数_mysql 二进制字段 查询_25


查询mysql版本:select version();

mysql 二进制字段 查询 mysql二进制函数_mysql 二进制字段 查询_26