HybridDB for MySQL中支持的MySQL函数有什么-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

HybridDB for MySQL中支持的MySQL函数有什么

云栖大讲堂 2017-10-31 17:09:18 1716

HybridDB for MySQL目前支持在SELECT查询语句中使用如下的SQL函数:
注:1.若无特殊说明,以下函数均为 MySQL v5.6中的函数定义)
注:2.如下函数目前仅可以在SELECT查询语句中使用,尚不支持在其他SQL语句中使用(如UPDATE、DELETE、INSERT、REPLACE等)

操作符

名称说明别名是否支持
AND, &&y
=y
BETWEEN ANDy
COALESCEreturn the first non-null argy
&y
~y
^y
CASEy
DIVy
/y
=y
<=>NULL-safe equal toy
>y
>=y
GREATESTy
LEASTy
INy
NOT INy
INVERVALy
ISy
IS NOTy
IS NOT NULLy
IS NULLy
<<y
<y
<=y
LIKEy
-y
%, MODy
NOT, !y
NOT BWTWEEN ANDy
!=, <>y
NOT LIKEy
NOT REGEXPNOT SIMILAR TOy
ORy
+y
REGEXPSIMILAR TOy
>>y
RLIKEREGEXPy
NOT RLIKENOT REGEXPy
*y
-y
XORy


控制流函数 Control Flow Functions

函数名说明别名是否支持
CASE WHEN[test1] THEN [result1]…ELSE [default] END如果testN是真,则返回resultN,否则返回defaulty
CASE [test] WHEN[val1] THEN [result]…ELSE [default] END如果test和valN相等,则返回resultN,否则返回defaulty
IF(test,t,f)如果test是真,返回t;否则返回 fy
IFNULL(arg1,arg2)如果arg1不是空,返回arg1,否则返回arg2y
NULLIF(arg1,arg2)如果arg1=arg2返回NULL;否则返回arg1y


字符函数 String Functions

函数名说明别名是否支持
ASCII(char)返回字符的ASCII码值ORD(char)y
BIN(n)返回字符的二进制值CONV(N, 10, 2)y
BIT_LENGTH(str)返回字符串的比特长度y
CHAR(N, …)咱不考虑0-255以为的字符y
CHAR_LENGTH(str)返回字符串的长度,按char个数计CHARACTER_LENGTH(str)y
CONCAT(s1,s2…,sn)将s1,s2…,sn连接成字符串,任何sn为NULL则返回NULLy
CONCAT_WS(sep,s1,s2…,sn)将s1,s2…,sn连接成字符串,并用sep字符间隔y
ELT(N, s1, s2, …)返回第N个sn字符串y
EXPORT_SET(bits, on, off [,seperator [,number_of_bits]])y
FIELD(target, s1, s2,…)返回target在s1,s2…里的positiony
FIND_IN_SET(str, strlist)分析逗号分隔的list列表,如果发现str,返回str在list中的位置y
FORMAT(X, D)y
FROM_BASE64(str)y
HEX(str), HEX(N)y
INSERT(str,x,y,instr)将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果y
INSTR(str, substr)y
LCASE(str)返回将字符串str中所有字符改变为小写后的结果LOWER(str)y
LOWER(str)y
LEFT(str,x)返回字符串str中最左边的x个字符y
LENGTH(s)返回字符串str中的字符数,按byte计y
LOCATE(substr, str), LOCATE(substr, str, pos)y
LPAD(str, len, padstr)y
LTRIM(str)从字符串str中切掉开头的空格y
MAKE_SET(bits, str1, str2, …)y
MID(str, pos, len)SUBSTRING(str, pos, len)y
OCT(N)CONV(N, 10, 8)y
OCTET_LENGTH(str)LENGTH(str)y
ORD(str)y
POSITION(substr IN str)返回子串substr在字符串str中第一次出现的位置LOCATE(substre, str)y
QUOTE(str)用反斜杠转义str中的单引号y
REPEAT(str, count)返回字符串str重复count次的结果y
REPLACE(str, from_str, tp_str)y
REVERSE(str)返回颠倒字符串str的结果y
RIGHT(str, len)返回字符串str中最右边的len个字符y
RPAD(str, len, padstr)y
RTRIM(str)返回字符串str尾部的空格y
SPACE(N)返回重复N个空格的字符串y
SUBSTR(str, pos), SUBSTR(str FROM pos), SUBSTR(str, pos, len), SUBSTR(str FROM pos FOR len)SUBST(str, pos[, length])y
SUBSTRING(str, pos), SUBSTRING(str FROM pos), SUBSTRING(str, pos, len), SUBSTRING(str FROM pos FOR len)SUBSTRING(str, pos[, length])y
SUBSTRING_INDEX(str, delim, count)y
TO_BASE64(str)y
TRIM([{BOTH / LEADING / TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str)去除字符串首部和尾部的所有空格/声明charalias: TRIM_STR([remchar,] str)y
UCASE(str)返回将字符串str中所有字符转变为大写后的结果UPPER(str)y
UNHEX(str)y
UPPER(str)y
expr LIKE pat [ESCAPE ‘escape_char’]y
expr NOT LIKE pat [ESCAPE ‘escape_char’]y
STRCMP(expr1, expr2)y
expr NOT REGEXP pat, expr NOT RLIKE patalias: NOT SIMILAR TOy
expr REGEXP pat, expr RLIKE patalias: SIMILAR TOy


数字函数 Numeric Functions

函数名说明别名是否支持
DIV, /, -, %, MOD, +, *, -arithmetic operatorsy
ABS(x)返回x的绝对值y
ACOS(x)y
ASIN(x)y
ATAN(x)y
ATAN(Y, X), ATAN2(Y, X)y
CEIL(X)CEILING(x)y
CEILING(x)返回大于x的最小整数值CEIL(x)y
CONV(N, from_base, to_base)y
COS(x)y
COT(x)y
CRC32(expr)y
DEGREES(x)y
EXP(x)返回值e(自然对数的底)的x次方y
FLOOR(x)返回小于x的最大整数值y
FORMAT(X, D)y
HEX(N_or_S)y
LN(x)返回x的自然对数y
LOG(b,x), LOG(x)返回x的以b为底的对数,b默认约是2.718y
LOG2(x)返回x的以2为底的对数y
LOG10(x)返回x的以10为底的对数y
MOD(N, M), N % M, N MOD M返回x/y的模(余数)y
PI()返回pi的值(圆周率)y
POW(x, y)POWER(x, y)y
POWER(x, y)POWy
RADIANS(x)y
RAND([N])返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值y
ROUND(x,[y])返回参数x的四舍五入的有y位小数的值, y默认0,即x取整y
SIGN(x)返回代表数字x的符号的值,返回-1, 0, 1y
SIN(x)y
SQRT(x)返回一个数的平方根y
TAN(x)y
TRUNCATE(x,y)返回数字x截短为y位小数的结果y


日期及时间函数 Date and Time Functions

函数名说明别名是否支持
ADDDATE(date, INTERVAL expr unit), ADDDATE(expr, days)只支持ADDDATE(expr, days)这种格式y
ADDTIME(expr1, expr2)目前’01:00:00.999999’ ,’25:00:01’ 这样的精度是会有区别的y
CONVERT_TZ(dt, from_tz, to_tz)y
CURDATE()返回当前的日期CURRENT_DATE()y
CURRENT_DATE, CURRENT_DATE()CURDATE()y
CURRENT_TIME([fsp])返回当前的时间CURTIME()y
CURRENT_TIMESTAMP([fsp])y
CURTIME([fsp])y
DATE(expr)y
DATEDIFF(expr1, expr2)y
DATE_ADD(date,INTERVAL int unit)ADDDATEy
DATE_FORMAT(date, format)y
DATE_SUB(date,INTERVAL expr, unit)SUBDATEy
DAY(date)DAYOFMONTHy
DAYOFWEEK(date)返回date所代表的一星期中的第几天(1~7)y
DAYOFMONTH(date)返回date是一个月的第几天(1~31)DAY(date)y
DAYOFYEAR(date)返回date是一年的第几天(1~366)y
DAYNAME(date)返回date的星期名y
EXTRACT(unit FROM date)unit暂不完全兼容mysqly
FROM_DAYS(N)y
FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp, format)支持FROM_UNIXTIME(unix_timestamp)y
GET_FORMAT({DATE / TIME / DATETIME}, {‘EUR’/‘USA’/‘JIS’/‘ISO’/‘INTERNAL’})y
HOUR(time)返回time的小时值(0~23),注意,mysql可以大于24y
LAST_DAY(date)不合理的’2003-03-32’ 不支持返回nully
LOCALTIME([fps])NOW()y
LOCALTIMESTAMP([fsp])NOW()y
MAKEDATE(year, dayofyear)y
MAKETIME(hour, minute, second)y
MICROSECOND(expr)y
MINUTE(time)返回time的分钟值(0~59)y
MONTH(date)返回date的月份值(1~12)y
MONTHNAME(date)返回date的月份名y
NOW([fsp])返回当前的日期和时间CURRENT_TIMESTAMP(), LOCALTIME(), LOCALTIMESTAMP(), SYSDATE()y
PERIOD_ADD(P, N)y
PERIOD_DIFF(P1, P2)y
QUARTER(date)返回date在一年中的季度(1~4)y
SECOND(time)y
SEC_TO_TIME(seconds)y
STR_TO_DATE(str, format)y
SUBDATE(date, INTERVAL expr unit), SUBDATE(expr, days)y
SUBTIME(expr1, expr2)y
SYSDATE([fsp])y
TIME(expr)y
TIMEDIFF(expr1, expr2)y
TIMESTAMP(expr), TIMESTAMP(expr1, expr2)y
TIMESTAMPADD(unit, internal, datetime_expr)y
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)y
TIME_FORMAT(time, format)y
TIME_TO_SEC(time)y
TO_DAYS(date)只接收Stringy
TO_SECONDS(expr)y
UNIX_TIMESTAMP([date])y
UTC_DATE()y
UTC_TIME()y
UTC_TIMESTAMP([fsp])y
WEEK(date[,mode])返回日期date为一年中第几周(0~53)y
WEEKDAY(date)y
WEEKOFYEAR(date)y
YEAR(date)返回日期date的年份(1000~9999)y
YEARWEEK(date[,mode])y


转换函数 Cast Functions

函数名说明别名是否支持
CAST(expr AS type)是mysql可CAST的子集y
CONVERT(expr, type)CAST(expr AS type)y
CONVERT(expr USING transcoding_name)y


Bit Functions and Operators

函数名说明别名是否支持
BIT_COUNT()y
&, ~, , ^, <<, >>y


信息函数 Information Functions

函数名说明别名是否支持
DATABASE()返回当前数据库名SCHEMA()y
BENCHMARK(count,expr)N
CHARSET(str)y
COERCIBILITY(str)y
COLLATION(str)y
CONNECTION_ID()y
SCHEMA()y
FOUND_ROWS()返回最后一个SELECT查询进行检索的总行数N
LAST_INSERT_ID([expr])Y
ROW_COUNT()N
USER()返回当前登陆用户名SYSTEM_USER(), SESSION_USER()y
VERSION()返回MySQL服务器的版本y


聚合函数Aggregate Functions

函数名说明别名是否支持
AVG([DISTINCT] expr)返回指定列的平均值y
BIT_AND(expr)y
BIT_OR(expr)y
BIT_XOR(expr)y
COUNT(expr)y
COUNT(DISTINCT expr,[expr…])返回指定列中非NULL值的个数y
GROUP_CONCAT(expr)返回由属于一组的列值连接组合而成的结果y
MAX([DISTINCT] expr)返回指定列的最大值y
MIN([DISTINCT] expr)y
SUM([DISTINCT] expr)返回指定列的所有值之和y
STD(expr)y
STDDEV(expr)y
STDDEV_POP(expr)y
STDDEV_SAMP(expr)y
VAR_POP(expr)y
VAR_SAMP(expr)y
VARIANCE(expr)y
WITH ROLLUP区别于MySQL,使用方式为group by rollup(c1, c2, ..., cn)y


兼容性说明

  1. 不支持UDF里传入越界的Numeric,否则会抛出“out of range”错误
SQL 关系型数据库 MySQL 数据库
分享到
取消 提交回答
全部回答(0)
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程