# Function Differences Between MariaDB 10.8 and MySQL 8.0

The following is a list of all function differences between [MariaDB 10.8](/docs/release-notes/community-server/old-releases/10.8/what-is-mariadb-108.md) and MySQL 8.0. It is based on functions available in the MySQL 8.0.23 and the [MariaDB 10.8.7](/docs/release-notes/community-server/old-releases/10.8/10.8.7.md) releases. For a more complete list of differences, see [Incompatibilities and Feature Differences Between MariaDB 10.8 and MySQL 8.0](/docs/release-notes/community-server/about/compatibility-and-differences/incompatibilities-and-feature-differences-between-mariadb-and-mysql-unmaint/incompatibilities-and-feature-differences-between-mariadb-10-8-and-mysql-8.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)

### Galera

* [WSREP\_LAST\_SEEN\_GTID](/docs/server/reference/sql-functions/special-functions/galera-functions/wsrep_last_seen_gtid.md)
* [WSREP\_LAST\_WRITTEN\_GTID](/docs/server/reference/sql-functions/special-functions/galera-functions/wsrep_last_written_gtid.md)
* [WSREP\_SYNC\_WAIT\_UPTO\_GTID](/docs/server/reference/sql-functions/special-functions/galera-functions/wsrep_sync_wait_upto_gtid.md)

### General

* [ADD\_MONTHS](/docs/server/reference/sql-functions/date-time-functions/add_months.md)
* [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)
* [DES\_DECRYPT](/docs/server/reference/sql-functions/secondary-functions/encryption-hashing-and-compression-functions/des_decrypt.md)
* [DES\_ENCRYPT](/docs/server/reference/sql-functions/secondary-functions/encryption-hashing-and-compression-functions/des_encrypt.md)
* [LENGTHB](/docs/server/reference/sql-functions/string-functions/lengthb.md)
* [NATURAL\_SORT\_KEY](/docs/server/reference/sql-functions/string-functions/natural_sort_key.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)
* [SFORMAT](/docs/server/reference/sql-functions/string-functions/sformat.md)
* [SYS\_GUID](/docs/server/reference/sql-functions/secondary-functions/miscellaneous-functions/sys_guid.md)
* [TO\_CHAR](/docs/server/reference/sql-functions/string-functions/to_char.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.

### Geographic

MySQL has removed the following functions in MySQL 8.0.

* [AREA](/docs/server/reference/sql-statements/geometry-constructors/polygon-properties/st_area.md)
* [AsBinary](/docs/server/reference/sql-statements/geometry-constructors/wkb/st_asbinary.md)
* [AsText](/docs/server/reference/sql-statements/geometry-constructors/wkt/st_astext.md)
* [AsWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/aswkb.md)
* [AsWKT](/docs/server/reference/sql-statements/geometry-constructors/wkt/st_aswkt.md)
* [Buffer](/docs/server/reference/sql-statements/geometry-constructors/geometry-constructors/buffer.md)
* [Centroid](/docs/server/reference/sql-statements/geometry-constructors/polygon-properties/centroid.md)
* [Contains](/docs/server/reference/sql-statements/geometry-constructors/geometry-relations/contains.md)
* [ConvexHull](/docs/server/reference/sql-statements/geometry-constructors/geometry-constructors/convexhull.md)
* [Crosses](/docs/server/reference/sql-statements/geometry-constructors/geometry-relations/crosses.md)
* [Dimension](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/dimension.md)
* [Disjoint](/docs/server/reference/sql-statements/geometry-constructors/geometry-relations/disjoint.md)
* [EndPoint](/docs/server/reference/sql-statements/geometry-constructors/linestring-properties/st_endpoint.md)
* [Envelope](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/st_envelope.md)
* [Equals](/docs/server/reference/sql-statements/geometry-constructors/geometry-relations/equals.md)
* [ExteriorRing](/docs/server/reference/sql-statements/geometry-constructors/polygon-properties/st_exteriorring.md)
* [GeomCollFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/st_geomcollfromtext.md)
* [GeomCollFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/st_geomcollfromwkb.md)
* [GeomFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/st_geomfromtext.md)
* [GeomFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/st_geomfromwkb.md)
* [GeometryCollectionFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/geometrycollectionfromtext.md)
* [GeometryCollectionFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/geometrycollectionfromwkb.md)
* [GeometryFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/geometryfromtext.md)
* [GeometryFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/geometryfromwkb.md)
* [GeometryN](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/st_geometryn.md)
* [GeometryType](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/st_geometrytype.md)
* [GLENGTH](/docs/server/reference/sql-statements/geometry-constructors/linestring-properties/glength.md)
* [InteriorRingN](/docs/server/reference/sql-statements/geometry-constructors/polygon-properties/st_interiorringn.md)
* [Intersects](/docs/server/reference/sql-statements/geometry-constructors/geometry-relations/intersects.md)
* [IsClosed](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/isclosed.md)
* [IsEmpty](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/st_isempty.md)
* [IsSimple](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/st_issimple.md)
* [LineFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/st_linefromtext.md)
* [LineFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/st_linefromwkb.md)
* [LineStringFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/linestringfromtext.md)
* [LineStringFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/linestringfromwkb.md)
* [MLineFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/mlinefromtext.md)
* [MLineFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/mlinefromwkb.md)
* [MPointFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/mpointfromtext.md)
* [MPointFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/mpointfromwkb.md)
* [MPolyFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/mpolyfromtext.md)
* [MPolyFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/mpolyfromwkb.md)
* [MultiLineStringFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/multilinestringfromtext.md)
* [MultiLineStringFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/multilinestringfromwkb.md)
* [MultiPointFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/multipointfromtext.md)
* [MultiPointFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/multipointfromwkb.md)
* [MultiPolygonFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/multipolygonfromtext.md)
* [MultiPolygonFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/multipolygonfromwkb.md)
* [NumGeometries](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/st_numgeometries.md)
* [NumInteriorRings](/docs/server/reference/sql-statements/geometry-constructors/polygon-properties/st_numinteriorrings.md)
* [NumPoints](/docs/server/reference/sql-statements/geometry-constructors/linestring-properties/st_numpoints.md)
* [Overlaps](/docs/server/reference/sql-statements/geometry-constructors/geometry-relations/overlaps.md)
* [PointFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/st_pointfromtext.md)
* [PointFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/st_pointfromwkb.md)
* [PointN](/docs/server/reference/sql-statements/geometry-constructors/linestring-properties/st_pointn.md)
* [PolyFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/st_polyfromtext.md)
* [PolyFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/st_polyfromwkb.md)
* [PolygonFromText](/docs/server/reference/sql-statements/geometry-constructors/wkt/polygonfromtext.md)
* [PolygonFromWKB](/docs/server/reference/sql-statements/geometry-constructors/wkb/polygonfromwkb.md)
* [SRID](/docs/server/reference/sql-statements/geometry-constructors/geometry-properties/st_srid.md)
* [StartPoint](/docs/server/reference/sql-statements/geometry-constructors/linestring-properties/st_startpoint.md)
* [Touches](/docs/server/reference/sql-statements/geometry-constructors/geometry-relations/touches.md)
* [Within](/docs/server/reference/sql-statements/geometry-constructors/geometry-relations/within.md)
* [X](/docs/server/reference/sql-statements/geometry-constructors/point-properties/st_x.md)
* [Y](/docs/server/reference/sql-statements/geometry-constructors/point-properties/st_y.md)

### 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\_EQUALS](/docs/server/reference/sql-functions/special-functions/json-functions/json_equals.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\_NORMALIZE](/docs/server/reference/sql-functions/special-functions/json-functions/json_normalize.md)
* [JSON\_QUERY](/docs/server/reference/sql-functions/special-functions/json-functions/json_query.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

* [MEDIAN](/docs/server/reference/sql-functions/special-functions/window-functions/median.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)

## 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

* MBRCOVEREDBY
* MBRCovers
* ST\_BUFFER\_STRATEGY
* ST\_FrechetDistance
* ST\_GeoHash
* ST\_HausdorffDistance
* ST\_IsValid
* ST\_LatFromGeoHash
* ST\_Latitude
* ST\_LongFromGeoHash
* ST\_Longitude
* ST\_MakeEnvelope
* ST\_PointFromGeoHash
* ST\_SIMPLIFY
* ST\_TRANSFORM
* ST\_VALIDATE ([MDEV-17398](https://jira.mariadb.org/browse/MDEV-17398))

### JSON

* JSON\_OVERLAPS ([MDEV-27677](https://jira.mariadb.org/browse/MDEV-27677))
* JSON\_SCHEMA\_VALID ([MDEV-27128](https://jira.mariadb.org/browse/MDEV-27128))
* JSON\_SCHEMA\_VALIDATION\_REPORT
* JSON\_STORAGE\_FREE
* JSON\_STORAGE\_SIZE ([MDEV-17397](https://jira.mariadb.org/browse/MDEV-17397))
* MEMBER\_OF operator

### Regular Expressions

* REGEXP\_LIKE ([MDEV-16599](https://jira.mariadb.org/browse/MDEV-16599))

### UUID

* BIN\_TO\_UUID
* IS\_UUID
* UUID\_TO\_BIN ([MDEV-15854](https://jira.mariadb.org/browse/MDEV-15854))

### Miscellaneous

* ANY\_VALUE ([MDEV-10426](https://jira.mariadb.org/browse/MDEV-10426))
* ASYNCHRONOUS\_CONNECTION\_FAILOVER\_ADD\_SOURCE
* ASYNCHRONOUS\_CONNECTION\_FAILOVER\_DELETE\_SOURCE
* FORMAT\_BYTES ([MDEV-19629](https://jira.mariadb.org/browse/MDEV-19629))
* FORMAT\_PICO\_TIME ([MDEV-19629](https://jira.mariadb.org/browse/MDEV-19629))
* GROUPING ([MDEV-32789](https://jira.mariadb.org/browse/MDEV-32789))
* PS\_THREAD\_ID ([MDEV-19629](https://jira.mariadb.org/browse/MDEV-19629))
* PS\_CURRENT\_THREAD\_ID
* RANDOM\_BYTES ([MDEV-25704](https://jira.mariadb.org/browse/MDEV-25704))
* VALIDATE\_PASSWORD\_STRENGTH ([MDEV-25703](https://jira.mariadb.org/browse/MDEV-25703))

## See Also

* [Incompatibilities and Feature Differences Between MariaDB 10.7 and MySQL 8.0](/docs/release-notes/community-server/about/compatibility-and-differences/incompatibilities-and-feature-differences-between-mariadb-and-mysql-unmaint/incompatibilities-and-feature-differences-between-mariadb-10-7-and-mysql-8.md)
* [Function Differences Between MariaDB 10.7 and MySQL 8.0](/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-10-7-and-mysql-8-0.md)
* [Function Differences Between MariaDB 10.6 and MySQL 8.0](/docs/release-notes/community-server/about/compatibility-and-differences/function-differences-between-mariadb-and-mysql/function-differences-between-mariadb-10-6-and-mysql-8-0.md)
* [System Variable Differences Between MariaDB 10.8 and MySQL 8.0](/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-8-and-mysql-8-0.md)
* [MariaDB versus MySQL - Compatibility](https://github.com/mariadb-corporation/docs-server/blob/test/release-notes/compatibility-and-differences/function-differences-between-mariadb-and-mysql/function-differences-between-mariadb-and-mysql-unmaintained-series/broken-reference/README.md)
* [MariaDB versus MySQL - Features](/docs/release-notes/community-server/about/compatibility-and-differences/mariadb-vs-mysql-features.md)

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET 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-10-8-and-mysql-8-0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
