VARBINARY
Синтаксис
VARBINARY(M)
Описание
Тип VARBINARY похож на тип VARCHAR, но хранит двоичные байтовые строки, а не недвоичные символьные строки. M представляет максимальную длину столбца в байтах.
Он не содержит кодировку символов, а сравнение и сортировка основаны на числовом значении байтов.
Если максимальная длина превышена, а строгий режим SQL не включен, дополнительные символы будут удалены с предупреждением. Если строгий режим включен, произойдет ошибка.
В отличие от значений BINARY, VARBINARY не дополняется справа нулями при вставке.
Режим Oracle
В режиме Oracle с MariaDB 10.3, RAW является синонимом для VARBINARY.
Примеры
Вставка слишком многих символов, сначала без строгого режима, а затем с ним:
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
Сортировка выполняется по значению байта:
TRUNCATE varbins;
INSERT INTO varbins VALUES('A'),('B'),('a'),('b');
SELECT * FROM varbins ORDER BY a;
+------+
| a |
+------+
| A |
| B |
| a |
| b |
+------+
Использование CAST для сортировки как CHAR вместо этого:
SELECT * FROM varbins ORDER BY CAST(a AS CHAR); +------+ | a | +------+ | a | | A | | b | | B | +------+
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/varbinary/