Mysql 检索表的最后一行时出错
在执行以下查询时,我试图从customer表中获取最后一行:Mysql 检索表的最后一行时出错,mysql,sql,Mysql,Sql,在执行以下查询时,我试图从customer表中获取最后一行: mystring = " mystring = "SELECT TOP 1 customer_id FROM customer ORDER BY customer_id DESC"" openconnection() cmd = New Odbc.OdbcCommand(mystring, myconnection) MsgBox(cmd.ExecuteScalar()) closeconnection() 错误消息如下所
mystring = " mystring = "SELECT TOP 1 customer_id FROM customer ORDER BY customer_id DESC""
openconnection()
cmd = New Odbc.OdbcCommand(mystring, myconnection)
MsgBox(cmd.ExecuteScalar())
closeconnection()
错误消息如下所示:
“请查看与MySQL服务器版本对应的手册,以了解正确的语法
在第1行“按客户id描述使用客户订单中的近1个客户id”
有人能告诉我为什么会发生这个错误,我需要在查询中做哪些更改吗
以获得预期结果。尝试在mysql中使用LIMIT,而不是像这样使用
TOP
SELECT customer_id FROM customer ORDER BY customer_id DESC LIMIT 1
这是T-SQL和MySQL之间“为数不多”的区别之一(我希望在这一点上会有一些反弹)。在TSQL中,您可以通过调用selecttopn…
来找到问题所在,而在MySQL中,您应该使用关键字指定您只需要n
行数
在您的特定情况下,您希望调用类似以下内容的语句:
SELECT customer_id
FROM customer
ORDER BY customer_id DESC
LIMIT 1
这与您的问题没有太大关系,但我想您以前没有使用过
限制,所以我会增加一点额外的积分LIMIT
也是您在MySQL中编写分页表达式的方式,因此,如果您发现自己需要(比如)只显示10个页面,您可以编写如下查询:
SELECT customer_id
FROM customer
ORDER BY customer_id DESC
LIMIT 0, 10
那么第二页呢,
SELECT customer_id
FROM customer
ORDER BY customer_id DESC
LIMIT 10, 10
同样地,与你的问题无关,任何超出界限的事情都应该这样做,但我认为在你的脑海中保留知识可能是有用的。1.
mystring = " mystring = "SELECT TOP 1 customer_id FROM customer ORDER BY customer_id DESC""
mystring = " mystring = "SELECT TOP 1 customer_id FROM customer ORDER BY customer_id DESC""
我使用MAX customer\u id,因为从您的代码中,您是按customer\u id订购的
2.
mystring = " mystring = "SELECT TOP 1 customer_id FROM customer ORDER BY customer_id DESC""
mystring = " mystring = "SELECT TOP 1 customer_id FROM customer ORDER BY customer_id DESC""
我无法理解mystring在没有任何说明的情况下被使用了两次,所以我认为它是一个拼写错误,所以我将其改为
mystring = "SELECT MAX(customer_id) FROM customer;"
openconnection()
cmd = New Odbc.OdbcCommand(mystring, myconnection)
MsgBox(cmd.ExecuteScalar())
closeconnection()
如果您只需要倒数第二个客户id,请使用
Select * from CustomerB Order By CustomerID DESC Limit 1 , 1 ;
对于最后第三个位置值
Select * from CustomerB Order By CustomerID DESC Limit 2 , 1 ;
我觉得标签被错误地建议改成MySql@SujithKarivelil您是否对我的标记更改有异议或同意,如果您不同意,原因是什么?TOP 1
是SQL Server语法。使用limit
代替。Ad@lekha,mystring=“mystring=”SELECT…
是打字错误吗?如果是的话,我可以改变它,或者你可以,我只是不想改变一些事实上是正确的东西。如果这个查询需要在哪里应用条件,我需要做什么?我可以通过此查询选择主键以外的列吗?@SujithKarivelil。只需在FROM
和ORDER BY
子句之间添加一个,其中[column]=“value”
,用于过滤,您可以通过在选择中指定列来选择任何列,或者只需列出选择*FROM…
。