Сохранение замыкающих пробелов в строковых столбцах
Задача
MySQL удаляет из строк замыкающие пробелы, а вы хотели бы их сохранить.
Решение
Используйте другой тип столбца.
Обсуждение
Если вы сохраняете в базе данных строковое значение, содержащее замыкающие пробелы, то при извлечении значения можете обнаружить, что они исчезли. Обычно MySQL именно так ведет себя по отношению к столбцам CHAR и VARCHAR; сервер возвращает из столбцов двух этих типов значения без замыкающих пробелов. Если вам нужно сохранить замыкающие пробелы, используйте столбцы типа TEXT или BLOB (тип TEXT не чувствителен к регистру, а BLOB чувствителен). Рассмотрим различия в поведении столбцов VARCHAR и TEXT на примере:
mysql> CREATE TABLE t (c VARCHAR(255));
mysql> INSERT INTO t (c) VALUES('abc ');
mysql> SELECT c, LENGTH(c) FROM t;
+-----+-------------+
| c | LENGTH(c) |
+-----+-------------+
| abc | 3 |
+-----+-------------+
mysql> DROP TABLE t;
mysql> CREATE TABLE t (c TEXT);
mysql> INSERT INTO t (c) VALUES('abc ');
mysql> SELECT c, LENGTH(c) FROM t;
+--------+-------------+
| c | LENGTH(c) |
+--------+-------------+
| abc | 10 |
+--------+-------------+
В следующей версии MySQL планируется ввод типа VARCHAR, сохраняющего
замыкающие пробелы.
Комментарии:
Нету комментариев для вывода...