我有一个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引擎的默认表。
答案 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)
问题: