Mysql数据库中的空间

时间:2011-05-13 12:04:38

标签: mysql

我在mysql db中有varchar数据类型字段。

我想将空格视为角色并存储在数据库中。

示例:String = Apple
在上面的例子中,我在单词Apple之后有4个空格,应该存储在db。

4 个答案:

答案 0 :(得分:7)

我认为空格存储在varchar类型的列中,除非您使用trim方法删除空格。

答案 1 :(得分:2)

由于MySQL具有从字符串中修剪空格的显式函数,在我看来,如果没有指示修剪它们,它应该尊重字符串中的空格吗?

编辑:以下是我的其余答案。这似乎是基于关于MySQLs字符串处理的错误假设。对不起。

您是否在查询中使用'围绕字符串?

INSERT INTO `table` VALUES (`str` = 'my string with spaces       ')

否则,空格不会被视为字符串的一部分,我认为......

编辑:正如所指出的,如果引号被删除,上面的例子会抛出一个错误,但是如果字符串只是一个单词加空格则不会:

INSERT INTO `table` VALUES (`str` = 'apple       ') // inserts 'apple       '
INSERT INTO `table` VALUES (`str` = apple       ) // inserts 'apple'

答案 2 :(得分:1)

您可以像这样存储它们 INSERT INTO sometable(somecolumn) VALUES ('test ');

答案 3 :(得分:0)

在MySQL 5.0+中,尾随空格(正确地根据SQL标准)保留在字符串上。

在早期版本中,它们被错误地剥离了。

在任何一种情况下,根据SQL标准,与=进行比较将忽略尾随空格。如果由于某种原因您想要比较尾随空格,请使用类似

的内容
SELECT ... FROM t WHERE col='Hello ' AND LENGTH(col) = LENGTH('Hello ')

当然,这只会为您提供尾随空格相同的行。