当前位置:K88软件开发文章中心编程语言SQLMySQL01 → 文章内容

MySQL 函数

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 5:40:40

MySQL 函数MySQL 有很多内置的函数,以下列出了这些函数的说明。MySQL 字符串函数函数描述实例ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。返回 CustomerName 字段第一个字母的 ASCII 码:SELECT ASCII(CustomerName) AS NumCodeOfFirstCharFROM Customers;CHAR_LENGTH(s)返回字符串 s 的字符数返回字符串 RUNOOB 的字符数SELECT CHAR_LENGTH("RUNOOB") AS LengthOfString;CHARACTER_LENGTH(s)返回字符串 s 的字符数返回字符串 RUNOOB 的字符数SELECT CHARACTER_LENGTH("RUNOOB") AS LengthOfString;CONCAT(s1,s2...sn)字符串 s1,s2 等多个字符串合并为一个字符串合并多个字符串SELECT CONCAT("SQL ", "Runoob ", "Gooogle ", "Facebook") AS ConcatenatedString;CONCAT_WS(x, s1,s2...sn)同 CONCAT(s1,s2,...) 函数,但是每个字符串直接要加上 x,x 可以是分隔符合并多个字符串,并添加分隔符:SELECT CONCAT_WS("-", "SQL", "Tutorial", "is", "fun!")AS ConcatenatedString;FIELD(s,s1,s2...)返回第一个字符串 s 在字符串列表(s1,s2...)中的位置返回字符串 c 在列表值中的位置:SELECT FIELD("c", "a", "b", "c", "d", "e");FIND_IN_SET(s1,s2)返回在字符串s2中与s1匹配的字符串的位置返回字符串 c 在指定字符串中的位置:SELECT FIND_IN_SET("c", "a,b,c,d,e");FORMAT(x,n)函数可以将数字 x 进行格式化 "#,###.##", 将 x 保留到小数点后 n 位,最后一位四舍五入。格式化数字 "#,###.##" 形式:SELECT FORMAT(250500.5634, 2); -- 输出 250,500.56INSERT(s1,x,len,s2)字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串从字符串第一个位置开始的 6 个字符替换为 k88:SELECT INSERT("google.com", 1, 6, "runnob"); -- 输出:k88.netLOCATE(s1,s)从字符串 s 中获取 s1 的开始位置获取 b 在字符串 abc 中的位置:SELECT LOCATE('st','myteststring'); -- 5LCASE(s)将字符串 s 的所有字母变成小写字母字符串 RUNOOB 转换为小写:SELECT LOWER('RUNOOB') -- k88LEFT(s,n)返回字符串 s 的前 n 个字符返回字符串 k88 中的前两个字符:SELECT LEFT('k88',2) -- ruLEFT(s,n)返回字符串 s 的前 n 个字符返回字符串 abcde 的前两个字符:SELECT LEFT('abcde',2) -- abLOCATE(s1,s)从字符串 s 中获取 s1 的开始位置返回字符串 abc 中 b 的位置:SELECT LOCATE('b', 'abc') -- 2LOWER(s)将字符串 s 的所有字母变成小写字母字符串 RUNOOB 转换为小写:SELECT LOWER('RUNOOB') -- k88LPAD(s1,len,s2)在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len将字符串 xx 填充到 abc 字符串的开始处:SELECT LPAD('abc',5,'xx') -- xxabcLTRIM(s)去掉字符串 s 开始处的空格去掉字符串 RUNOOB开始处的空格:SELECT LTRIM(" RUNOOB") AS LeftTrimmedString;-- RUNOOBMID(s,n,len)从字符串 s 的 start 位置截取长度为 length 的子字符串,同 SUBSTRING(s,n,len)从字符串 RUNOOB 中的第 2 个位置截取 3个 字符:SELECT MID("RUNOOB", 2, 3) AS ExtractString; -- UNOPOSITION(s1 IN s)从字符串 s 中获取 s1 的开始位置返回字符串 abc 中 b 的位置:SELECT POSITION('b' in 'abc') -- 2REPEAT(s,n)将字符串 s 重复 n 次 将字符串 k88 重复三次:SELECT REPEAT('k88',3) -- k88k88k88REPLACE(s,s1,s2)将字符串 s2 替代字符串 s 中的字符串 s1将字符串 abc 中的字符 a 替换为字符 x:SELECT REPLACE('abc','a','x') --xbcREVERSE(s)将字符串s的顺序反过来将字符串 abc 的顺序反过来:SELECT REVERSE('abc') -- cbaRIGHT(s,n)返回字符串 s 的后 n 个字符返回字符串 k88 的后两个字符:SELECT RIGHT('k88',2) -- obRPAD(s1,len,s2)在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len将字符串 xx 填充到 abc 字符串的结尾处:SELECT RPAD('abc',5,'xx') -- abcxxRTRIM(s)去掉字符串 s 结尾处的空格去掉字符串 RUNOOB 的末尾空格:SELECT RTRIM("RUNOOB ") AS RightTrimmedString; -- RUNOOBSPACE(n)返回 n 个空格返回 10 个空格:SELECT SPACE(10);STRCMP(s1,s2)比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1比较字符串:SELECT STRCMP("k88", "k88"); -- 0SUBSTR(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串从字符串 RUNOOB 中的第 2 个位置截取 3个 字符:SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString; -- UNOSUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串从字符串 RUNOOB 中的第 2 个位置截取 3个 字符:SELECT SUBSTRING("RUNOOB", 2, 3) AS ExtractString; -- UNOSUBSTRING_INDEX(s, delimiter, number)返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。如果 number 是正数,返回第 number 个字符左边的字符串。如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。SELECT SUBSTRING_INDEX('a*b','*',1) -- aSELECT SUBSTRING_INDEX('a*b','*',-1)    -- bSELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1)    -- cTRIM(s)去掉字符串 s 开始和结尾处的空格去掉字符串 RUNOOB 的首尾空格:SELECT TRIM(' RUNOOB ') AS TrimmedString;UCASE(s)将字符串转换为大写将字符串 k88 转换为大写:SELECT UCASE("k88"); -- RUNOOBUPPER(s)将字符串转换为大写将字符串 k88 转换为大写:SELECT UPPER("k88"); -- RUNOOBMySQL 数字函数函数名描述实例ABS(x)返回 x 的绝对值  返回 -1 的绝对值:SELECT ABS(-1) -- 返回1ACOS(x)求 x 的反余弦值(参数是弧度)SELECT ACOS(0.25);ASIN(x)求反正弦值(参数是弧度)SELECT ASIN(0.25);ATAN(x)求反正切值(参数是弧度)SELECT ATAN(2.5);ATAN2(n, m)求反正切值(参数是弧度)SELECT ATAN2(-0.8, 2);AVG(expression)返回一个表达式的平均值,expression 是一个字段返回 Products 表中Price 字段的平均值:SELECT AVG(Price) AS AveragePrice FROM Products;CEIL(x)返回大于或等于 x 的最小整数 SELECT CEIL(1.5) -- 返回2CEILING(x)返回大于或等于 x 的最小整数

[1] [2] [3]  下一页


MySQL 函数