Mysql 特殊函数

Nov 14, 2015


这里主要记录下Mysql其他函数的一些用法


其他函数

  • LEAST

    • LEAST(值1,值2,…值n),其中值n表示参数列表中有n个值。在有两个或多个参数的情况下,返回最小值
  • GREATEST

    • GREATEST(值1,值2,…值n),其中n表示参数列表中有n个值。在有两个或多个参数的情况下,返回最大值
  • MOD(X,Y)

    • 求余函数
  • TRUNCATE(X,Y)

    • TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数
  • HEX(X)&UNHEX(X)

    • 二进制转化函数HEX(X)和其反函数
  • CONCAT_WS(x,s1,s2,……)

    • CONCAT_WS(‘-‘,’1st’,’2nd’,’3rd’)使用分隔符‘-’将3个字符串连接成一个字符串,结果为“1st-2nd-3rd”
  • LPAD(S1,LEN,S2)&RPAD(S1,LEN,S2)

    • LPAD(S1,LEN,S2)返回字符串s1,其左边由字符串s2填补到len字符串长度。假如s1的长度大于len,则返回值被缩短至len字符rd”
  • TRIM(S)

    • 删除空格的函数

    • TRIM(S1 FROM S)删除字符串s中两端所有的子字符串s1。 s1为可选项,在未指定情况下,删除空格

  • STRCMP(S1,S2)

    • STRCMP(S1,S2)若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1
  • LOCATE(STR1,STR)

    • 匹配子串开始位置的函数

    • SELECT LOCATE(‘ball’,’football’)

  • ELT(N,字符串1,字符串2,字符串3,…,)

    • 返回指定位置的字符串的函数

    • 若N小于1或大于参数的数目,则返回值为NULL

      SELECT ELT(3,’1st’,’2nd’,’3rd’)

  • FIELD(S,S1,S2,…)

    • 返回指定字符串位置的函数

    • FIELD(S,S1,S2,…)返回字符串s在列表s1,s2,……中第一次出现的位置,在找不到s的情况下,返回值为0

    • 如果s为NULL,则返回值为0,原因是NULL不能同任何值进行同等比较

  • FIND_IN_SET(S1,S2)

    • 返回子串位置的函数

    • FIND_IN_SET(S1,S2)返回字符串s1在字符串列表s2中出现的位置,字符串列表是一个由多个逗号

    • SELECT FIND_IN_SET(‘hi’,’hihi,hey,hi,bas’)

  • UTC_DATE()&UTC_TIME()

    • 当前日期和 当前时间
  • IF(expr,v1,v2))

    • IF(expr,v1,v2)如果表达式expr是TRUE(expr<>0 and expr<>NULL),则IF()的返回值为v1;否则返回值为v2
  • IFNULL(V1,V2)

    • IFNULL(V1,V2)假如v1不为NULL,则IFNULL(V1,V2)的返回值为v1;否则其返回值为v2