字符串中字符之间添加了不需要的空格

时间:2014-08-25 20:07:29

标签: mysql xml ms-access character-encoding

我有一个Microsoft Access前端链接到Linux服务器上的MySQL数据库。除了最近实施的varchar列之外,表中的所有varchar列都正常运行。

当我尝试将文本保存到新列时#34;文件名" (varchar(200)),在使用MS Access输入数据和记录到MySQL数据库的数据之间的某处,在字符串的每个字符之间插入一个空格。例如,如果我进入 " /home/username/folder/filename.xml" ;,表中记录的值为" / h o m e / u e e n f e / f o l d r / f e l e e a m e。 x m l"。

在创建此表之前,我尝试修改不同的列字符编码(在ascii,utf-8和其他文件类型之间)以尝试检索实际的xml文件,而不仅仅是文件名和位置。也许我搞砸了那个特定的专栏。我已经尝试重新启动计算机,并在MS Access和MySQL数据库本身中删除并重新添加该列。

什么可能导致额外空间的生成,如何在没有以不同方式解析字符串的廉价解决方案的情况下解决问题?我想解决问题的根源。

信息:MySQL数据库使用UTF-8编码作为Innodb引擎的默认表。

2 个答案:

答案 0 :(得分:0)

试试这个。它应该删除空格(假设你有一个名为id的每一行的唯一标识符)

UPDATE table t, 
(   SELECT 
        id, 
        REPLACE(filename , ' ' , '' ) as filename 
    FROM table
) t1
SET t.filename = t1.filename WHERE t.id = t1.id

为了帮助您填写插页,我们需要的信息比您提供的信息要多得多。

答案 1 :(得分:0)

问题:

  • 当您通过Access& amp;输入数据时,会发生这种情况吗? MySQL,还是只是 访问?
  • 只是通过表格?直接表编辑怎么样?
  • 你说这只发生在一个专栏上?你能删除它吗? 列和复制一个有效吗?
  • 如果仅在Access查询中,请查看列属性。