mysql:
1、判断一个字段是否为奇数/偶数
mod(id,2)=1 奇数
mod(id,2)=0 偶数
select * from employees where mod(emp_no,2)=1 and last_name!='Mary' order by hire_date desc;
2、mysql 中 group_concat()用法--**实现行转列功能**
基本语法:group_concat([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符'])
select name , GROUP_CONCAT(money) money from aa GROUP BY name;
表示以name相同的放在一组里面,然后将money放在一行上。
结果:
3、limit
limit 2 # 只有一个参数,表示查询前面2条数据
limit offset,length # 有两个参数,length表示每页显示条数,offset=(页码-1)*每页显示量,offset=(页码-1)*length
Mysql中的函数:
1、字符函数
1)length(‘字符串’) # 获取参数值的字节个数
2)concat(last_name,'_',first_name) # 拼接字符串
3)upper('字符串') # 转为大写
4)lower('字符串') # 转为小写
5)substr('字符串',6) # 从小标为6开始截取字符串(mysql中下标是从1开始的)
substr('字符串',1,3) # 从小标1开始,截取长度为3的字符串
substr('hello',-2,1) # 从倒数第二个开始,截取长度为1
6)substring # 与上述的substr用法一样
7)instr('字符串1','字符串2') # 返回字符串2在字符串1中第一次出现的索引,如果找不到,返回0
8)trim(' 字符串 ') # 去除前后空格
9)lpad('字符串',10,'*') # 用指定的*字符去左填充,以达到长度为10
10)rpad('字符串',10,'*') # 用指定的*字符去右填充,以达到长度为10
11)replace('字符串','str1','str2') # 将字符串中的str1替换为str2
12)substring_index('字符串','分隔符',count) # count>0表示从前往后取,count<0表示从后往前取
# count=1>0,表示从前往后去,取到第一个分隔符为值,结果为:a
select substring_index('a-b-c', '-', 1);
# count=2>0,表示从前往后去,取到第二个分隔符为值,结果为:a-b
select substring_index('a-b-c', '-', 2);
# count=-1<0,表示从后往前去,取到第一个分隔符为值,结果为:c
select substring_index('a-b-c', '-', -1);
# count=-2<0,表示从后往前去,取到第二个分隔符为值,结果为:b-c
select substring_index('a-b-c', '-', -1);
13)locate(subStr,string)函数判断字符串(string)中是否包含另一个字符串(subStr)
// 如果字符串 string 包含 subStr locate(subStr,string) > 0
// 如果字符串 string 不包含 subStr locate(subStr,string) = 0
locate(subStr,string) > 0
2、数学函数
1、round(1.45) # 四舍五入
round(1.456,2) # 保留2位小数
2、ceil(4.5) # 向上取整
3、floor(4.5) # 向下取整
4、truncate(1.699999,1) # 截断(也即保留小数点后几位)
5、mod(10,3) # 取余
3、日期函数
1、now() # 返回当前系统日期和时间
2、curdate() # 返回当前系统日期,不返回时间
3、curtime() # 返回当前系统时间,不返回日期
4、year()、month()、day()
5、str_to_date('1998-02-01','%Y-%c-%d') # 将字符串通过指定格式转换成日期
6、date_to_str('1989-09-02','%y年%m月%d日') # 将日期通过指定格式转换成字符串
7、timestampdiff
select timestampdiff(year, '1990-02-01 00:00:00', '2020-01-01 00:00:00');
select timestampdiff(year, '1990-02-01 00:00:00', '2020-04-01 00:00:00');
select timestampdiff(day, '1990-02-01 00:00:00', '1990-03-01 00:00:00');
select timestampdiff(hour, '1990-02-01 00:00:00', '1990-02-02 00:00:00');
4、其它函数
select version();
select database();
select user();
5、流程控制函数
1、if(10>5,'大','小')
2、case函数
第一种用法:
case 要判断的字段或表达式
when ... then...
when ... then...
else
end
第二种用法:
case
when ... then...
when ... then...
else
end