Expressions, Functions, and Operators#

Expressions, Functions, Operators#

Statements#

ComponentSupportedNotes and limitations
Common statementsSee the supported statements doc

Clauses#

ComponentSupportedNotes and limitations
WHERE
HAVING
LIMIT
OFFSET
GROUP BYGroup-by columns can be referred to by their ordinal (e.g. 1, 2), a MySQL dialect extension.
ORDER BYOrder-by columns can be referred to by their ordinal (e.g. 1, 2), a MySQL dialect extension.
Aggregate functions
DISTINCT
ALL

Table expressions#

ComponentSupportedNotes and limitations
Tables and views
Table and view aliases
JoinsLEFT OUTER, RIGHT OUTER, INNER, NATURAL, CROSS JOIN, and FULL OUTER joins are supported.
Subqueries
UNION

Scalar expressions#

ComponentSupportedNotes and limitations
Common operators
IF
CASE
NULLIF
COALESCE
IFNULL
AND
OR
LIKE
IN
INTERVAL
Scalar subqueries
Column ordinal references

Functions and operators#

Currently supporting 328 of 431 MySQL functions.

Most functions are simple to implement. If you need one that isn’t implemented, please file an issue. We can fulfill most requests for new functions within 24 hours.

ComponentSupportedNotes and limitations
%
&
`
*
+
->>
->
-
/
:=Works as a synonym for =, but does not allow assignment in SELECT expressions (GitHub Issue)
<<
<=>Null-safe equals operator
<=
<>, !=
<
=
>=
>>
>
^
ABS()
ACOS()
ADDDATE()
ADDTIME()
AES_DECRYPT()
AES_ENCRYPT()
AND
ANY_VALUE()
ARRAY_LENGTH()
ASCII()
ASIN()
ASYMMETRIC_DECRYPT()
ASYMMETRIC_DERIVE()
ASYMMETRIC_ENCRYPT()
ASYMMETRIC_SIGN()
ASYMMETRIC_VERIFY()
ATAN()
ATAN2()
AVG()
BENCHMARK()
BETWEEN ... AND ...
BIN()
BIN_TO_UUID()
BIT_AND()
BIT_COUNT()
BIT_LENGTH()
BIT_OR()\ is supported
BIT_XOR()^ is supported
CASE
CAST()Convert between types supported. Convert between charsets is not.
CEIL()
CEILING()
CHAR()
CHARACTER_LENGTH()
CHARSET()
CHAR_LENGTH()
COALESCE()
COERCIBILITY()
COLLATION()
COMPRESS()Golang’s zlib library is slightly different than MySQL’s, so compressed data may not match
CONCAT()
CONCAT_WS()
CONNECTION_ID()
CONV()
CONVERT()Converting between types is supported. Converting between charsets is not.
CONVERT_TZ()
COS()
COT()
COUNT()
COUNT(DISTINCT)
CRC32()
CREATE_ASYMMETRIC_PRIV_KEY()
CREATE_ASYMMETRIC_PUB_KEY()
CREATE_DH_PARAMETERS()
CREATE_DIGEST()
CUME_DIST()
CURDATE()
CURRENT_DATE()
CURRENT_ROLE()
CURRENT_TIME()
CURRENT_TIMESTAMP()
CURRENT_USER()
CURTIME()
DATABASE()
DATE()
DATEDIFF()
DATETIME()
DATE_ADD()
DATE_FORMAT()
DATE_SUB()
DAY()
DAYNAME()
DAYOFMONTH()
DAYOFWEEK()
DAYOFYEAR()
DEFAULT()
DEGREES()
DENSE_RANK()
DIV
ELT()
EXP()
EXPLODE()
EXPORT_SET()
EXTRACT()
EXTRACTVALUE()
FIELD()
FIND_IN_SET()
FIRST()
FIRST_VALUE()
FLOOR()
FORMAT()
FORMAT_BYTES()
FORMAT_PICO_TIME()
FOUND_ROWS()
FROM_BASE64()
FROM_DAYS()
FROM_UNIXTIME()
GET_FORMAT()
GET_LOCK()
GREATEST()
GROUPING()
GROUP_CONCAT()
GTID_SUBSET()
GTID_SUBTRACT()
GEOMCOLLECTION()
GEOMETRYCOLLECTION()
HASHOF()Returns the hash of a reference, e.g. HASHOF("master"))
HEX()
HOUR()
ICU_VERSION()
IF()
IFNULL()
IN()
INET6_ATON()
INET6_NTOA()
INET_ATON()
INET_NTOA()
INSERT()
INSTR()
INTERVAL()
IS NOT NULL
IS NOT
IS NULL
ISNULL()
IS_BINARY()
IS_FREE_LOCK()
IS_IPV4()
IS_IPV4_COMPAT()
IS_IPV4_MAPPED()
IS_IPV6()
IS_USED_LOCK()
IS_UUID()
IS
JSON_ARRAY()
JSON_ARRAYAGG()
JSON_ARRAY_APPEND()
JSON_ARRAY_INSERT()
JSON_CONTAINS()
JSON_CONTAINS_PATH()
JSON_DEPTH()
JSON_EXTRACT()
JSON_INSERT()
JSON_KEYS()
JSON_LENGTH()
JSON_MERGE()
JSON_MERGE_PATCH()
JSON_MERGE_PRESERVE()
JSON_OBJECT()
JSON_OBJECTAGG()
JSON_OVERLAPS()
JSON_PRETTY()
JSON_QUOTE()
JSON_REMOVE()
JSON_REPLACE()
JSON_SCHEMA_VALID()
JSON_SCHEMA_VALIDATION_REPORT()
JSON_SEARCH()
JSON_SET()
JSON_STORAGE_FREE()
JSON_STORAGE_SIZE()
JSON_TABLE()FOR ORDINALITY and NESTED are not supported yet.
JSON_TYPE()Inconsistencies when using MySQL Native Types
JSON_UNQUOTE()
JSON_VALID()
JSON_VALUE()
LAG()
LAST()
LAST_DAY
LAST_INSERT_ID()
LAST_VALUE()
LCASE()
LEAD()
LEAST()
LEFT()
LENGTH()
LIKE
LN()
LOAD_FILE()
LOCALTIME()
LOCALTIMESTAMP()
LOCATE()
LOG()
LOG10()
LOG2()
LOWER()
LPAD()
LTRIM()
LineString()
MAKEDATE()
MAKETIME()
MAKE_SET()
MASTER_POS_WAIT()
MATCH
MAX()
MBRContains()
MBRCoveredBy()
MBRCovers()
MBRDisjoint()
MBREquals()
MBRIntersects()
MBROverlaps()
MBRTouches()
MBRWithin()
MD5()
MEMBER OF()
MICROSECOND()
MID()
MIN()
MINUTE()
MOD()
MONTH()
MONTHNAME()
MultiLineString()
MultiPoint()
MultiPolygon()
NAME_CONST()
NOT, !
NOT BETWEEN ... AND ...
NOT IN()
NOT LIKE
NOT MATCH
NOT REGEXP
NOT RLIKENOT REGEXP is supported
NOT, !
NOW()
NTH_VALUE()
NTILE()
NULLIF()
OCT()
OCTET_LENGTH()
ORD()
OR
PERCENT_RANK()
PERIOD_ADD()
PERIOD_DIFF()
PI()
POSITION()
POW()
POWER()
PS_CURRENT_THREAD_ID()
PS_THREAD_ID()
POINT()
POLYGON()
QUARTER()
QUOTE()
RADIANS()
RAND()
RANDOM_BYTES()
RANK()
REGEXP_INSTR()
REGEXP_LIKE()
REGEXP_MATCHES()
REGEXP_REPLACE()
REGEXP_SUBSTR()
REGEXP
RELEASE_ALL_LOCKS()
RELEASE_LOCK()
REPEAT()
REPLACE()
REVERSE()
RIGHT()
RLIKEREGEXP is supported
ROLES_GRAPHML()
ROUND()
ROW_COUNT()
ROW_NUMBER()
RPAD()
RTRIM()
SCHEMA()
SECOND()
SEC_TO_TIME()
SESSION_USER()
SHA()
SHA1()
SHA2()
SIGN()
SIN()
SLEEP()
SOUNDEX()
SPACE()
SPLIT()
SQRT()
STATEMENT_DIGEST()
STATEMENT_DIGEST_TEXT()
STD()
STDDEV()
STDDEV_POP()
STDDEV_SAMP()
STRCMP()
STR_TO_DATE()
ST_AREA()Geodetic not yet supported
ST_ASBINARY()
ST_ASGEOJSON()
ST_ASTEXT()
ST_ASWKB()
ST_ASWKT()
ST_BUFFER()
ST_BUFFER_STRATEGY()
ST_CENTROID()
ST_CONTAINS()
ST_CONVEXHULL()
ST_CROSSES()
ST_DIFFERENCE()
ST_DIMENSION()
ST_DISJOINT()
ST_DISTANCE()Geodetic not yet supported
ST_DISTANCE_SPHERE()
ST_ENDPOINT()
ST_ENVELOPE()
ST_EQUALS()Only supported for POINTs
ST_EXTERIORRING()
ST_GEOHASH()
ST_GEOMCOLLFROMTEXT()
ST_GEOMCOLLFROMWKB()
ST_GEOMFROMGEOJSON()
ST_GEOMFROMTEXT()
ST_GEOMFROMWKB()
ST_GEOMETRYN()
ST_GEOMETRYTYPE()
ST_INTERIORRINGN()
ST_INTERSECTION()
ST_INTERSECTS()
ST_ISCLOSED()
ST_ISEMPTY()
ST_ISSIMPLE()
ST_ISVALID()
ST_LATFROMGEOHASH()
ST_LATITUDE()
ST_LENGTH()Geodetic not yet supported
ST_LINEFROMTEXT()
ST_LINEFROMWKB()
ST_LONGFROMGEOHASH()
ST_LONGITUDE()
ST_MLINEFROMTEXT()
ST_MLINEFROMWKB()
ST_MPOINTFROMTEXT()
ST_MPOINTFROMWKB()
ST_MPOLYFROMTEXT()
ST_MPOLYFROMWKB()
ST_MAKEENVELOPE()
ST_NUMGEOMETRIES()
ST_NUMINTERIORRING()
ST_NUMPOINTS()
ST_OVERLAPS()
ST_PERIMETER()Geodetic not yet supported. Not supported in MySQL. Follows PostGIS: https://postgis.net/docs/ST_Perimeter.html
ST_POINTFROMGEOHASH()
ST_POINTFROMTEXT()
ST_POINTFROMWKB()
ST_POINTN()
ST_POLYFROMTEXT()
ST_POLYFROMWKB()
ST_SRID()
ST_SIMPLIFY()
ST_STARTPOINT()
ST_SWAPXY()
ST_SYMDIFFERENCE()
ST_TOUCHES()
ST_TRANSFORM()
ST_UNION()
ST_VALIDATE()
ST_WITHIN()Only supported for Point vs Geometry comparisons
ST_X()
ST_Y()
SUBDATE()
SUBSTR()
SUBSTRING()
SUBSTRING_INDEX()
SUBTIME()
SUM()
SYSDATE()
SYSTEM_USER()
TAN()
TIME()
TIMEDIFF()
TIMESTAMP()
TIMESTAMPADD()
TIMESTAMPDIFF()
TIME_FORMAT()
TIME_TO_SEC()
TO_BASE64()
TO_DAYS()
TO_SECONDS()
TRIM()
TRUNCATE()
UCASE()
UNCOMPRESS()
UNCOMPRESSED_LENGTH()
UNHEX()
UNIX_TIMESTAMP()
UPPER()
USER()
UTC_DATE()
UTC_TIME()
UTC_TIMESTAMP()
UUID()
UUID_SHORT()Returns a 64-bit unsigned integer UUID using server_id, startup time, and counter
UUID_TO_BIN()
UPDATEXML()
VALIDATE_PASSWORD_STRENGTH()
VALUES()
VARIANCE()
VAR_POP()
VAR_SAMP()
VERSION()
WAIT_FOR_EXECUTED_GTID_SET()
WEEK()
WEEKDAY()
WEEKOFYEAR()
WEIGHT_STRING()
YEAR()
YEARWEEK()

Aggregate Functions#

Refer to the MySQL Aggregate Function Documentation for more info.

ComponentSupportedNotes and limitations
AVG()
BIT_AND()
BIT_OR()
BIT_XOR()
COUNT()
COUNT(DISTINCT)
GROUP_CONCAT()
JSON_OBJECT_AGG()
JSON_ARRAY_AGG()
MAX()
MIN()
STD()
STDDEV()
STDDEV_POP()
STDDEV_SAMP()
SUM()
VAR_POP()
VAR_SAMP()
VARIANCE()

Window Functions#

Refer to the MySQL Window Function Descriptions for more info.

ComponentSupportedNotes and limitations
CUME_DIST()
DENSE_RANK()
FIRST()
FIRST_VALUE
LAG
LAST_VALUE()
LAST()
LEAD()
NTH_VALUE()
NTILE()
PERCENT_RANK()
RANK()
ROW_NUMBER()