gpt4 book ai didi

mysql - 使用 ODBC 连接到 MYSQL 在 MS-Access 中运行 SQL 时出错

转载 作者:行者123 更新时间:2023-11-29 06:53:32 25 4
gpt4 key购买 nike

我正在帮助一家非营利组织将 MS-Access 数据迁移到 MYSQL。因此,我将数据移植到 MYSQL 并使用 ODBC 在 ms-access 中创建了对 MYSQL 表的链接。大多数现有 SQL 都可以正常工作。但是我对这个错误感到困惑 -

您的 SQL 语法有错误,请查看与您的 MySQL 服务器版本相对应的手册,了解在 UNION 附近使用的正确语法...

我已经将带有 7 个 UNIONS 的 SQL 剥离到仍然失败的地方。

(SELECT 1 as A FROM Households H)
UNION ALL
(SELECT 2 as A FROM Households H)
UNION ALL
(SELECT 3 as A FROM Households H)

让我明白的是,只要我只运行一个 UNION 表示低于 SQL,我就能够成功地运行上面的代码,但是当我添加第三个 UNION 时,它会出现 ODBC 错误

(SELECT 1 as A FROM Households H)
UNION ALL
(SELECT 2 as A FROM Households H)

我尝试使用 `'[] 但这些都没有帮助。我对这个错误感到沮丧的原因是它要么全部失败,要么全部失败,只有在使用两个或多个 UNION 子句时才会出错。这可能是驱动程序中的潜在错误吗?

我在带有 ms-access 和 32 位驱动程序的 win-7 64 位上使用 mysql-64 位。这不应该是架构问题,因为我能够使用多个 UNION 运行其他查询,并 Access 同一组表。

如果有人可以提供有关如何进一步调试的指示,那就太好了。

最佳答案

在我的 Access 版本中,当我在设计 (SQL) View 中编辑查询时,顶部有三个按钮。 “联合”、“传递”和“数据定义”。

如果我单击“直通”,您的查询就会生效。如果我单击“联合”,它就会中断。您可以为此查询使用“直通”吗?

即使在“联合”或“数据定义”模式下,这似乎也有效:

(SELECT 1, column1 as A FROM Households H)
UNION ALL
(SELECT 2, column2 as A FROM Households H)
UNION ALL
(SELECT 3, column3 as A FROM Households H);

也许 Access 被只有一个列搞糊涂了?

或者,只需使用多路复用表而不是联合:

SELECT mux.id,
IIf(mux.id=1,column1,IIf(mux.id=2,column2,column3)) AS A
FROM Households, mux;

注意:mux 表中应该有 3 个值 1,2,3。如果它有更多,您希望限制为 where 子句中的前 3 个(或 n 个)。

关于mysql - 使用 ODBC 连接到 MYSQL 在 MS-Access 中运行 SQL 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com