我正在使用PHPMyAdmin在Java和MySQL中创建一个小应用程序并且运行正常,但是我的教授说我们必须在Access中使用数据库,所以我只是更改了我的类连接并导入了我的数据库. INSERT,SELECT和其他UPDATE语句运行正常,但此语句...

我正在使用PHPMyAdmin在Java和MySQL中创建一个小应用程序并且运行正常,但是我的教授说我们必须在Access中使用数据库,所以我只是更改了我的类连接并导入了我的数据库. INSERT,SELECT和其他UPDATE语句运行正常,但此语句不运行.
UPDATE table SET col1=?, col2=? WHERE col0=? ORDER BY col4 DESC LIMIT 1
我无法理解在MySQL中如何运行良好,但使用UCanAccess它不起作用.
解决方法:
I can’t understand how in MySQL it runs fine but with UCanAccess it doesn’t work.
这是因为数据库软件的各种生产者已经采用了稍微不同的方式来实现SQL语言,因此为MySQL编写的给定SQL语句不能保证在Access,Microsoft SQL Server,Oracle或其他任何其他软件下工作. SQL的“方言”.
UCanAccess非常努力地遵循Access SQL语法. Access SQL使用TOP n而不是LIMIT n,但Access SQL在UPDATE查询的主要部分中也不允许使用TOP n或ORDER BY.因此,您需要使用子查询来标识要更新的行的主键值.
例如,如果您的表具有名为“id”的主键列,那么您可以这样做
sql =
"UPDATE table1 SET col1=?, col2=? " +
"WHERE id IN ( " +
"SELECT TOP 1 id " +
"FROM table1 " +
"WHERE col0=? " +
"ORDER BY col4 DESC, id " +
")";
本文标题为:java – UcanaccessSQLException:意外令牌:ORDER


基础教程推荐
- 关于@MapperScan包扫描的坑及解决 2023-04-16
- jsp hibernate的分页代码第3/3页 2024-01-11
- 详解http请求中的Content-Type 2023-07-31
- Spring MVC数据绑定方式 2023-06-30
- SpringBoot 2.5.5整合轻量级的分布式日志标记追踪神器TLog的详细过程 2023-06-17
- springboot中request和response的加解密实现代码 2022-12-08
- java 解决Eclipse挂掉问题的方法 2024-01-10
- 用javascript制作qq注册动态页面 2023-12-16
- SpringBoot嵌入式Web容器原理与使用介绍 2023-06-17
- JSP servlet实现文件上传下载和删除 2023-07-30