mysql需要注意的一些函数

2022-04-21  本文已影响0人  阿登20

1. 字符串拼接

SELECT FIND_IN_SET("a1","fds,a,f,a,f,a,f")
找不到返回为0

image.png

SELECT FIND_IN_SET(NULL,"fds,a,f,a,f,a,f") 参数其中一个为null结果为null

image.png

find_in_set(str, strlist)的真正用法是跟着where 后面 strlist是一个select语句的查询结果级

image.png

select id,name from ba where id in (select model_id from ab where name='大众集合');
实际上面的语法不能用,正确的需要用find_in_set
select id,name from ba where id in (select model_id from ab where name='大众集合');

截取函数substr(str,index,len)

截取字符串索引为index开始,后面len个字符
从第2个元素开始截取到第5个。 其实从索引2开始,向后截取4个字符个数。包括索引2的位置
SELECT SUBSTR("fafaffdas",2,4)

image.png

截取函数left(str,len) right(str,len)

截取字符串左/右边 开始的len个字符
SELECT LEFT("fdasfasf",3)

image.png

SELECT RIGHT("fsdafas",6)

image.png

截取函数 truncate(x,y),一般针对数值型,如果是字符串型,结果为0

SELECT TRUNCATE("3.555",2)
SELECT TRUNCATE(3.555,2)

image.png
SELECT TRUNCATE("fdasf",1) 字符串无法转化成数值型的结果为 0
image.png

获取字节长度和字符个数

length() 获取字节长度,utf-8 中文为3个字节长度,gbk 中文为2个字节长度
char_length() 获取字符个数,与length是有区别的。
SELECT LENGTH("我aaa")

image.png

SELECT CHAR_LENGTH("我aaa")

image.png

字符串替换

有2个函数 一个是 replace(str,a,b),a 另外一个是 insert(str,index,len,newstr)
SELECT REPLACE("fasfa","a","爱")

image.png
SELECT INSERT("fdsafaf",2,4,"爱爱")
image.png

replace是所有匹配都替换,insert是在一定范围替换

返回最大/小值

*greatest(集合也可以是一个嵌套语句) 最大值

SELECT LEAST(3,"100",1,4)

image.png

字符串反转 reverse(str)

SELECT REVERSE("abcd")

image.png

字符串 大写或者小写

SELECT UPPER("fasfa")

image.png

SELECT LOWER("fFdsa")

image.png

数学函数round(x,y) x是小数,y保留几位小时,四舍五入

SELECT ROUND(3.156,2)

image.png

返回索引 instr

SELECT INSTR("fdasf", "d")


image.png

比较大小strcmp(x,y) 大于返回1,小于返回-1,等于返回 0

SELECT STRCMP("2","3")

image.png

SELECT STRCMP(3,2)

image.png

SELECT STRCMP("4",4)

image.png

待续。。。。。 改天写后面的,时间不够

上一篇下一篇

猜你喜欢

热点阅读