Syntax
------ 
VARBINARY(M)
 
Description
----------- 
The VARBINARY type is similar to the VARCHAR type, but
stores binary byte strings rather than non-binary character
strings. M represents the maximum column length in bytes. 
 
It contains no character set, and comparison and sorting are
based on the numeric value of the bytes.
 
If the maximum length is exceeded, and SQL strict mode is
not enabled , the extra characters will be dropped with a
warning. If strict mode is enabled, an error will occur.
 
Unlike BINARY values, VARBINARYs are not right-padded when
inserting.
 
Oracle Mode
 
In Oracle mode from MariaDB 10.3, RAW is a synonym for
VARBINARY.
 
Examples
-------- 
Inserting too many characters, first with strict mode off,
then with it on:
 
CREATE TABLE varbins (a VARBINARY(10));
 
INSERT INTO varbins VALUES('12345678901');
Query OK, 1 row affected, 1 warning (0.04 sec)
 
SELECT * FROM varbins;
 
+------------+
| a |
+------------+
| 1234567890 |
+------------+
 
SET sql_mode='STRICT_ALL_TABLES';
 
INSERT INTO varbins VALUES('12345678901');
ERROR 1406 (22001): Data too long for column 'a' at row 1
 
Sorting is performed with the byte value:
 
TRUNCATE varbins;
 
INSERT INTO varbins VALUES('A'),('B'),('a'),('b');
 
SELECT * FROM varbins ORDER BY a;
 
+------+
| a |
+------+
| A |
| B |
| a |
| b |
+------+
 
Using CAST to sort as a CHAR instead:
 
SELECT * FROM varbins ORDER BY CAST(a AS CHAR);
+------+
| a |
+------+
| a |
| A |
| b |
| B |
+------+
 


URL: https://mariadb.com/kb/en/varbinary/