我在mysql db中有varchar数据类型字段。
我想将空格视为角色并存储在数据库中。
示例:String = Apple
在上面的例子中,我在单词Apple之后有4个空格,应该存储在db。
答案 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 ')
当然,这只会为您提供尾随空格相同的行。