> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/release-notes/community-server/about/compatibility-and-differences/function-differences-between-mariadb-and-mysql/function-differences-between-mariadb-and-mysql-unmaintained-series/function-differences-between-mariadb-103-and-mysql-57.md).

# Function Differences Between MariaDB 10.3 and MySQL 5.7

The following is a list of all function differences between [MariaDB 10.3](/docs/release-notes/community-server/old-releases/10.3/what-is-mariadb-103.md) and MySQL 5.7. It is based on functions available in the stable versions MySQL 5.7.18 and [MariaDB 10.3.29](/docs/release-notes/community-server/old-releases/10.3/10.3.29.md).

For a description of all differences, see [Incompatibilities and Feature Differences Between MariaDB 10.3 and MySQL 5.7](/docs/release-notes/community-server/about/compatibility-and-differences/incompatibilities-and-feature-differences-between-mariadb-and-mysql-unmaint/compatibility-differences-incompatibilities-and-feature-differences-between.md).

## Present in MariaDB Only

### Dynamic Columns

* [COLUMN\_ADD](/docs/server/reference/sql-functions/special-functions/dynamic-columns-functions/column_add.md)
* [COLUMN\_CHECK](/docs/server/reference/sql-functions/special-functions/dynamic-columns-functions/column_check.md)
* [COLUMN\_CREATE](/docs/server/reference/sql-functions/special-functions/dynamic-columns-functions/column_create.md)
* [COLUMN\_DELETE](/docs/server/reference/sql-functions/special-functions/dynamic-columns-functions/column_delete.md)
* [COLUMN\_EXISTS](/docs/server/reference/sql-functions/special-functions/dynamic-columns-functions/column_exists.md)
* [COLUMN\_GET](/docs/server/reference/sql-functions/special-functions/dynamic-columns-functions/column_get.md)
* [COLUMN\_JSON](/docs/server/reference/sql-functions/special-functions/dynamic-columns-functions/column_json.md)
* [COLUMN\_LIST](/docs/server/reference/sql-functions/special-functions/dynamic-columns-functions/column_list.md)

### General

* [CHR](/docs/server/reference/sql-functions/string-functions/chr.md)
* [DECODE\_ORACLE](/docs/server/reference/sql-functions/secondary-functions/encryption-hashing-and-compression-functions/decode.md)
* [LENGTHB](/docs/server/reference/sql-functions/string-functions/lengthb.md)
* [NVL](/docs/server/reference/sql-functions/control-flow-functions/ifnull.md) (Synonym for IFNULL)
* [NVL2](/docs/server/reference/sql-functions/control-flow-functions/nvl2.md)
* [TRIM\_ORACLE](/docs/server/reference/sql-functions/string-functions/trim.md)
* [VALUE](/docs/server/reference/sql-functions/secondary-functions/miscellaneous-functions/values-value.md) - the VALUES() function was renamed after MariaDB introduced Table Value Constructors.

### JSON

* [JSON\_COMPACT](/docs/server/reference/sql-functions/special-functions/json-functions/json_compact.md)
* [JSON\_DETAILED](/docs/server/reference/sql-functions/special-functions/json-functions/json_detailed.md)
* [JSON\_EXISTS](/docs/server/reference/sql-functions/special-functions/json-functions/json_exists.md)
* [JSON\_LOOSE](/docs/server/reference/sql-functions/special-functions/json-functions/json_loose.md)
* [JSON\_MERGE\_PATCH](/docs/server/reference/sql-functions/special-functions/json-functions/json_merge_patch.md)
* [JSON\_MERGE\_PRESERVE](/docs/server/reference/sql-functions/special-functions/json-functions/json_merge_preserve.md)
* [JSON\_QUERY](/docs/server/reference/sql-functions/special-functions/json-functions/json_query.md)
* [JSON\_VALUE](/docs/server/reference/sql-functions/special-functions/json-functions/json_value.md)

### Regular Expressions

* [REGEXP\_INSTR](/docs/server/reference/sql-functions/string-functions/regular-expressions-functions/regexp_instr.md)
* [REGEXP\_REPLACE](/docs/server/reference/sql-functions/string-functions/regular-expressions-functions/regexp_replace.md)
* [REGEXP\_SUBSTR](/docs/server/reference/sql-functions/string-functions/regular-expressions-functions/regexp_substr.md)

### Sequences

* [LASTVAL](/docs/server/reference/sql-structure/sequences/sequence-functions/previous-value-for-sequence_name.md)
* [NEXTVAL](/docs/server/reference/sql-structure/sequences/sequence-functions/next-value-for-sequence_name.md)
* [SETVAL](/docs/server/reference/sql-structure/sequences/sequence-functions/setval.md)

### Window Functions

* [CUME\_DIST](/docs/server/reference/sql-functions/special-functions/window-functions/cume_dist.md)
* [DENSE\_RANK](/docs/server/reference/sql-functions/special-functions/window-functions/dense_rank.md)
* [LAG](/docs/server/reference/sql-functions/special-functions/window-functions/lead.md)
* [LAST\_VALUE](/docs/server/reference/sql-functions/secondary-functions/information-functions/last_value.md)
* [LEAD](/docs/server/reference/sql-functions/special-functions/window-functions/lead.md)
* [MEDIAN](/docs/server/reference/sql-functions/special-functions/window-functions/median.md)
* [NTH\_VALUE](/docs/server/reference/sql-functions/special-functions/window-functions/nth_value.md)
* [NTILE](/docs/server/reference/sql-functions/special-functions/window-functions/ntile.md)
* [PERCENT\_RANK](/docs/server/reference/sql-functions/special-functions/window-functions/percent_rank.md)
* [PERCENTILE\_CONT](/docs/server/reference/sql-functions/special-functions/window-functions/percentile_cont.md)
* [PERCENTILE\_DISC](/docs/server/reference/sql-functions/special-functions/window-functions/percentile_disc.md)
* [RANK](/docs/server/reference/sql-functions/special-functions/window-functions/rank.md)
* [ROW\_NUMBER](/docs/server/reference/sql-functions/special-functions/window-functions/row_number.md)

## Present in MySQL Only

### GTID

MariaDB and MySQL have differing [GTID](/docs/server/ha-and-performance/standard-replication/gtid.md) implementations.

* GTID\_SUBSET
* GTID\_SUBTRACT
* WAIT\_FOR\_EXECUTED\_GTID\_SET
* WAIT\_UNTIL\_SQL\_THREAD\_AFTER\_GTIDS()

### Geographic

* DISTANCE
* MBRCOVEREDBY
* ST\_BUFFER\_STRATEGY
* ST\_GeoHash
* ST\_IsValid
* ST\_LatFromGeoHash
* ST\_LongFromGeoHash
* ST\_PointFromGeoHash
* ST\_SIMPLIFY
* ST\_VALIDATE

### Miscellaneous

* ANY\_VALUE
* RANDOM\_BYTES
* RELEASE\_ALL\_LOCKS
* VALIDATE\_PASSWORD\_STRENGTH

## See Also

* [Incompatibilities and Feature Differences Between MariaDB 10.3 and MySQL 5.7](/docs/release-notes/community-server/about/compatibility-and-differences/incompatibilities-and-feature-differences-between-mariadb-and-mysql-unmaint/compatibility-differences-incompatibilities-and-feature-differences-between.md)
* [System Variable Differences Between MariaDB 10.3 and MySQL 5.7](/docs/release-notes/community-server/about/compatibility-and-differences/system-variable-differences-between-mariadb-and-mysql/system-variable-differences-between-mariadb-and-mysql-unmaintained-series/system-variable-differences-between-mariadb-10-3-and-mysql-5-7.md)
* [Function Differences Between MariaDB 10.2 and MySQL 5.7](/docs/release-notes/community-server/about/compatibility-and-differences/function-differences-between-mariadb-and-mysql/function-differences-between-mariadb-and-mysql-unmaintained-series/function-differences-between-mariadb-102-and-mysql-57.md)

{% @marketo/form formid="4316" formId="4316" %}
