Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java UcanaccessSQLException:意外标记:订单_Java_Mysql_Jdbc_Ucanaccess - Fatal编程技术网

Java UcanaccessSQLException:意外标记:订单

Java UcanaccessSQLException:意外标记:订单,java,mysql,jdbc,ucanaccess,Java,Mysql,Jdbc,Ucanaccess,我正在用PHPMyAdmin用Java和MySQL制作一个小应用程序,运行良好,但我的教授说我们必须使用Access中的数据库,所以我只是更改了我的类连接并导入了我的数据库。INSERT、SELECT和其他UPDATE语句运行正常,但此语句不运行 UPDATE table SET col1=?, col2=? WHERE col0=? ORDER BY col4 DESC LIMIT 1 我不明白在MySQL中它是如何运行良好的,但在UCanAccess中它不起作用 我不明白在MySQL中它是

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

UPDATE table SET col1=?, col2=? WHERE col0=? ORDER BY col4 DESC LIMIT 1
我不明白在MySQL中它是如何运行良好的,但在UCanAccess中它不起作用

我不明白在MySQL中它是如何运行良好的,但在UCanAccess中它不起作用

这是因为不同的数据库软件生产商自己以稍微不同的方式实现SQL语言,因此,为MySQL编写的给定SQL语句不能保证在Access、Microsoft SQL Server、Oracle或任何其他SQL“方言”下工作

UCanAccess非常努力地遵循Access SQL语法。Access SQL使用
TOP n
而不是
LIMIT n
,但Access SQL也不允许在更新查询的主要部分使用
TOP n
ORDER BY
。因此,您需要使用子查询来标识要更新的行的主键值

例如,如果您的表有一个名为“id”的主键列,则可以执行以下操作

sql=
“更新表1集合col1=?,col2=?”+
“其中id位于(”+
“选择前1个id”+
“来自表1”+
“其中col0=?”+
“按col4描述、id订购”+
")";

我不明白你想干什么。您是否正在尝试更新或选择行?您是否可以共享至少一小段代码?这句话基本上更新了一条记录,但此记录必须是此记录的最后一条记录,这是一个用于注册一个办公室员工进出的应用程序,应用程序会在员工进入时创建记录,并在员工离开时更新。请参考答案,其中给出了您想要做什么的想法。是的,此代码给我一个想法,但此代码用于2个表,me代码用于一个表。如果你能给我举个例子,我会非常高兴的。。。。