ms-access - 从 MS Access 数据库表中的字段中删除字符

标签 ms-access sql-update

使用 MS Access 2010。
我在表中有一个字段,其中包含用引号括起来的 Windows 路径名,就像这样

"C:\My Documents\Photos\img1.jpg"
"C:\My Documents\Photos\products\gizmo.jpg"
"C:\My Documents\Photos\img5.jpg"

等等。

我需要去掉引号,使列看起来像这样:
C:\My Documents\Photos\img1.jpg
C:\My Documents\Photos\products\gizmo.jpg
C:\My Documents\Photos\img5.jpg

有没有办法编写更新查询来做到这一点?
或者更好的方法来完全做到这一点?

最佳答案

如果您将在 Access session 中执行此操作,使用 Access 2000 或更高版本,您可以使用 Replace()在更新查询中删除引号的函数。删除意味着用空字符串替换它们。

UPDATE YourTable
SET path_field = Replace(path_field, '"', '');

如果这些路径字符串中的任何一个可以在其中包含引号(糟糕!),请考虑 Mid()函数 ... 要求它从第二个字符开始(跳过前导引号),并返回等于 Len(path_field) - 2 的字符数
UPDATE YourTable
SET path_field = Mid(path_field, 2, Len(path_field) - 2);

无论哪种方式,您可能都希望包含一个 WHERE 子句来忽略没有 path_field 的行。值。
WHERE Len(path_field) > 0

如果在添加新数据时必须再次执行此操作,请使用不同的 WHERE 子句以确保仅更新那些 path_field 的行。值以引号开始和结束。
WHERE path_field Like '"*"'

那是将 * 通配符用于 Access 的默认 ANSI 89 模式。如果要从 ADO(ANSI 92 模式)执行此操作,请使用 % 通配符。
WHERE path_field Like '"%"'

... 或使用 ALike和任何一种模式的 % 通配符。
WHERE path_field ALike '"%"'

关于ms-access - 从 MS Access 数据库表中的字段中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10249929/

相关文章:

sql - 更新 SELECT 输出的行的列

sql - 采访 : update table values using select statement

postgresql - Postgres - 来自 CLI 的更新命令

mysql - 查询更新 MySQL 不支持子句 IN

ms-access - 紧凑 Access 数据库

sql - 如何在表和查询上使用 SELECT 插入

Python: sqlite3 - 如何加速数据库的更新

excel - 将 Access 交叉表查询链接并导入 Excel

sql - 这个 MySQL 数据库可以改进吗?或者它是好的吗?

ms-access - MS Access - 在表单中输入的数据在我关闭表单时自动保存