MySQL中常用的函数

最近在看公司的存储过程,接触了一些之前没用过的MySQL函数。这篇博客做一个记录总结。

for update :select for update 是为了在查询时,对这条数据进行加锁,避免其他用户以该表进行插入,修改或删除等操作,造成表的不一致性.

IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

                     已存在      不存在
insert               报错    插入    insert into names(name, age) values(“小明”, 23);
insert ignore    忽略    插入    insert ignore into names(name, age) values(“小明”, 24);
replace            替换    插入    replace into names(name, age) values(“小明”, 25);

LOCATE(substr,str)     返回子串 substr 在字符串 str 中第一次出现的位置。              如果子串 substr 在 str 中不存在,返回值为 0
LOCATE(substr,str,pos) 返回子串 substr 在字符串 str 中的第 pos 位置后第一次出现的位置。如果 substr 不在 str 中返回 0 
SELECT LOCATE('q', 'asqdfasdfser')                返回  3   
SELECT LOCATE('q', 'asqdfasqdfser',4)               返回  8
SELECT * from  mydb.new_name where locate('6', logID)       这句话的意思是 从mydb的new_name表中筛选出logID带6的那一行数据

substring(str, pos, len)   从第pos取,取len长度

Cast(字段名 as 转换的类型 )


FIND_IN_SET(str,strlist)    
如果字符串str是在的strlist组成的N子串的字符串列表,返回值的范围为1到N。
如果str不在strlist 或strlist 为空字符串,则返回值为 0

ceil    向上取整
floor   向下取整
round   四舍五入

ELT(n,str1,str2,str3,...) :如果n=1,则返回str1,如果n=2,则返回str2,依次类推。如果n小于1或大于参数个数,返回NULL。
FIELD(str,str1,str2,str,str3,str4...):返回str 在后面的参数列(str1,str2,str,str3,str4...)中的索引,起始索引为1。如果未在参数列中发现str 则返回0。

IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。
IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。
NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。
ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值