HybridDB for MySQL目前支持在SELECT查询语句中使用如下的SQL函数:
注:1.若无特殊说明,以下函数均为
MySQL v5.6中的函数定义)
注:2.如下函数目前仅可以在SELECT查询语句中使用,尚不支持在其他SQL语句中使用(如UPDATE、DELETE、INSERT、REPLACE等)
操作符
| 名称 | 说明 | 别名 | 是否支持 |
| AND, && | y | ||
| = | y | ||
| BETWEEN AND | y | ||
| COALESCE | return the first non-null arg | y | |
| & | y | ||
| ~ | y | ||
| ^ | y | ||
| CASE | y | ||
| DIV | y | ||
| / | y | ||
| = | y | ||
| <=> | NULL-safe equal to | y | |
| > | y | ||
| >= | y | ||
| GREATEST | y | ||
| LEAST | y | ||
| IN | y | ||
| NOT IN | y | ||
| INVERVAL | y | ||
| IS | y | ||
| IS NOT | y | ||
| IS NOT NULL | y | ||
| IS NULL | y | ||
| << | y | ||
| < | y | ||
| <= | y | ||
| LIKE | y | ||
| - | y | ||
| %, MOD | y | ||
| NOT, ! | y | ||
| NOT BWTWEEN AND | y | ||
| !=, <> | y | ||
| NOT LIKE | y | ||
| NOT REGEXP | NOT SIMILAR TO | y | |
| OR | y | ||
| + | y | ||
| REGEXP | SIMILAR TO | y | |
| >> | y | ||
| RLIKE | REGEXP | y | |
| NOT RLIKE | NOT REGEXP | y | |
| * | y | ||
| - | y | ||
| XOR | y |
| 函数名 | 说明 | 别名 | 是否支持 |
| CASE WHEN[test1] THEN [result1]…ELSE [default] END | 如果testN是真,则返回resultN,否则返回default | y | |
| CASE [test] WHEN[val1] THEN [result]…ELSE [default] END | 如果test和valN相等,则返回resultN,否则返回default | y | |
| IF(test,t,f) | 如果test是真,返回t;否则返回 f | y | |
| IFNULL(arg1,arg2) | 如果arg1不是空,返回arg1,否则返回arg2 | y | |
| NULLIF(arg1,arg2) | 如果arg1=arg2返回NULL;否则返回arg1 | y |
| 函数名 | 说明 | 别名 | 是否支持 |
| 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则返回NULL | y | |
| 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…里的position | y | |
| 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) | 去除字符串首部和尾部的所有空格/声明char | alias: 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 pat | alias: NOT SIMILAR TO | y | |
| expr REGEXP pat, expr RLIKE pat | alias: SIMILAR TO | y |
| 函数名 | 说明 | 别名 | 是否支持 |
| DIV, /, -, %, MOD, +, *, - | arithmetic operators | y | |
| 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.718 | y | |
| 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) | POW | y | |
| RADIANS(x) | y | ||
| RAND([N]) | 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值 | y | |
| ROUND(x,[y]) | 返回参数x的四舍五入的有y位小数的值, y默认0,即x取整 | y | |
| SIGN(x) | 返回代表数字x的符号的值,返回-1, 0, 1 | y | |
| SIN(x) | y | ||
| SQRT(x) | 返回一个数的平方根 | y | |
| TAN(x) | y | ||
| TRUNCATE(x,y) | 返回数字x截短为y位小数的结果 | y |
| 函数名 | 说明 | 别名 | 是否支持 |
| 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) | ADDDATE | y | |
| DATE_FORMAT(date, format) | y | ||
| DATE_SUB(date,INTERVAL expr, unit) | SUBDATE | y | |
| DAY(date) | DAYOFMONTH | y | |
| 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暂不完全兼容mysql | y | |
| 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可以大于24 | y | |
| LAST_DAY(date) | 不合理的’2003-03-32’ 不支持返回null | y | |
| 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) | 只接收String | y | |
| 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(expr AS type) | 是mysql可CAST的子集 | y | |
| CONVERT(expr, type) | CAST(expr AS type) | y | |
| CONVERT(expr USING transcoding_name) | y |
| 函数名 | 说明 | 别名 | 是否支持 |
| BIT_COUNT() | y | ||
| &, ~, , ^, <<, >> | y |
| 函数名 | 说明 | 别名 | 是否支持 |
| 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 |
| 函数名 | 说明 | 别名 | 是否支持 |
| 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 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。