Student(Name VARCHAR(30), Gender CHAR(6));
Query OK, 0 rows affected (0.008 sec)
MariaDB [study]> INSERT into Student VALUES('Herry', 'Male');
Query OK, 1 row affected (0.001 sec)
MariaDB [study]> INSERT into Student VALUES('Mahi', 'Female');
Query OK, 1 row affected (0.000 sec)
MariaDB [study]> SELECT LENGTH(Gender) FROM Student;
+----------------+
| LENGTH(Gender) |
+----------------+
| 4 |
| 6 |
+----------------+
Потому что таков стандарт SQL, если мне не изменяет память. Используйте LIKE для своей ситуации.
char же должен рпадить пробелами и хранить их
Это делается только при выводе данных, внутри БД нет разницы в хранении между char и varchar. В документации это жирным текстом даже выделено
When CHAR values are stored, they are right-padded with spaces to the specified length. When CHAR values are retrieved, trailing spaces are removed unless the PAD_CHAR_TO_FULL_LENGTH SQL mode is enabled.
Это ты откуда выписал?
Думаю, ты перепутал тип CHAR и BINARY.
Обсуждают сегодня