美文网首页
mysql需要注意的一些函数

mysql需要注意的一些函数

作者: 阿登20 | 来源:发表于2022-04-21 17:24 被阅读0次

    1. 字符串拼接

    • concat函数 多个字段拼接显示
      SELECT CONCAT("a","b","c") AS 拼接结果是字段连接起来

      image.png
    • concat_ws 比一个分隔符去连接多个字段
      SELECT CONCAT_WS("_","a","b","c") AS "_连接多个字段"

      image.png
    • group_concat(distinct 字段) 分组后,将分组名一样的,值用,拼接显示
      查询每个部门的工种编号,相同部门的工作编号以逗号连接起来。
      SELECT department_id,GROUP_CONCAT(job_id) FROM employees WHERE department_id IS NOT NULL GROUP BY department_id;

      image.png
    • find_in_str(str, strlist) 返回str在strlist中的索引。strlist是一个,分隔的字符串。存在 返回索引,不存在返回0, 参数有其中一个为null,结果为null
      SELECT FIND_IN_SET("a","fds,a,f,a,f,a,f") 结果为索引2

      image.png

    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
    • 截取英文第一个字母
      SELECT SUBSTR("fafaffdas",1,1)
      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(集合也可以是一个嵌套语句) 最大值

    • least() 最小值
      SELECT GREATEST(3,"100",1,4)
      image.png

    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

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

    相关文章

      网友评论

          本文标题:mysql需要注意的一些函数

          本文链接:https://www.haomeiwen.com/subject/anaiertx.html