Mysql函数记录贴
会sql函数,可在开发中,省写很多代码,并且sql函数的执行效率较快
IFNULL()
IFNULL(expr1,expr2):expr1不为空时 返回expr1,否则返回expr2
CONCAT()
concat(str1,str2,...):函数返回结果为连接参数产生的字符串。
如有任何一个参数为NULL ,则返回值为 NULL(ifNull()可解决这个问题)
eg:concat(a,b)改写为concat(ifnull(a,''),b) //将可能为null的字段用ifnull()函数做判断
GROUP_CONCAT()
将表中同个字段的多条数据用,拼接起来
eg: 表中字段为 a 有三个数据 1,2,3
group_concat(a) as a 得到 a = 1,2,3
REPLACE ( )
replace(字段 , 替换的内容,替换成什么)
eg:表中字段name 值为: 吴某某
replace(name,'吴','刘')
FIND_IN_SET()
find_in_set(id,ids) : a表-b表(1对多)a表字段存储为1,2,3 且想连表查询时可用
eg:select a.id,group_concat(b.name) from a left join b on find_in_set(a.bids,b.id) group by a.id
需配合group_concat()函数使用,否则b.name查出的数据不完整
SUM()
sum(status = 1): 当有多个状态,想统计count(status) 又想统计status等于1时,可以用sum
eg: select count(status),sum(status=1) from a