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 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。