[NATIONAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]


A fixed-length string that is always right-padded with spaces to the specified length when stored. M represents the column length in characters. The range of M is 0 to 255. If M is omitted, the length is 1.

CHAR(0) columns can contain 2 values: an empty string or NULL. Such columns cannot be part of an index. The CONNECT storage engine does not support CHAR(0).

Note: Trailing spaces are removed when CHAR values are retrieved unless the PAD_CHAR_TO_FULL_LENGTH SQL mode is enabled.

Currently, all MariaDB collations are of type PADSPACE, meaning that CHAR (as well as VARCHAR and TEXT values) are compared without regard for trailing spaces. This does not apply to the LIKE pattern-matching operator, which takes into account trailing spaces.

If a unique index consists of a column where trailing pad characters are stripped or ignored, inserts into that column where values differ only by the number of trailing pad characters will result in a duplicate-key error.


Trailing spaces:

CREATE TABLE strtest (c CHAR(10));
INSERT INTO strtest VALUES('Maria   ');

SELECT c='Maria',c='Maria   ' FROM strtest;
| c='Maria' | c='Maria   ' |
|         1 |            1 |

SELECT c LIKE 'Maria',c LIKE 'Maria   ' FROM strtest;
| c LIKE 'Maria' | c LIKE 'Maria   ' |
|              1 |                 0 |

See Also


Comments loading...