Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
如何选择MySQL中ID最高的行?_Mysql - Fatal编程技术网

如何选择MySQL中ID最高的行?

如何选择MySQL中ID最高的行?,mysql,Mysql,如何选择MySQL中ID最高的行?这是我当前的代码: SELECT * FROM permlog WHERE max(id) 出现错误,有人能帮我吗?对于MySQL: SELECT * FROM permlog ORDER BY id DESC LIMIT 0, 1 SELECT * FROM permlog ORDER BY id DESC LIMIT 1 您希望将行从最高id排序到最低id,因此按id DESC排序。然后您只需要第一行,以便: LIMIT子句可用于约束SELECT语句返

如何选择MySQL中ID最高的行?这是我当前的代码:

SELECT * FROM permlog WHERE max(id)
出现错误,有人能帮我吗?

对于MySQL:

SELECT * FROM permlog ORDER BY id DESC LIMIT 0, 1
SELECT *
FROM permlog
ORDER BY id DESC
LIMIT 1
您希望将行从最高id排序到最低id,因此按id DESC排序。然后您只需要第一行,以便:

LIMIT子句可用于约束SELECT语句返回的行数。 [...] 通过一个参数,该值指定从结果集开始返回的行数


这将返回id最高的所有行,以防id列不被限制为唯一的。

如果它只是您想要的最高id。并且ID是唯一的/自动增量:

SELECT MAX(ID) FROM tablename

这是唯一一个实际选择整行而不仅仅是maxid字段的方法。它使用子查询


选择*FROM permlog,其中id=从permlog中选择最大id

从TABELNAME中选择最大id


这标识了最大id并返回值

假设您有多条相同日期或休假类型的记录,但id不同,并且您想要相同日期或休假类型的最大id号,因为我也在处理此问题, 因此,是的,您可以通过以下查询执行此操作:

select * from tabel_name where employee_no='123' and id=(
   select max(id) from table_name where employee_no='123' and leave_type='5'
)

使用此查询查找MySQL表中的最高ID。

为什么限制0,1而不限制1?没有特殊原因,限制1和限制0,1都有效。虽然它显示您可以从permlog LIMIT 1,1中选择*以获得第二高。但遗憾的是,相同的方法不适用于表上的联接。LIMIT 0,1和LIMIT 1的作用相同。第一个包括行限制的偏移量。跳过0,获取以下1当我们有内部查询时,这种方法不好。因为mysql不支持内部查询中的限制功能。因此,穆罕默德·汗给出的答案是徒劳的——这是唯一正确的答案!添加限制1会使它变得完美,我认为…@Sliq实际上它只返回1行或1个值,所以限制1是多余的!有趣的是,在一个小表中,在我的上下文中,由颤振驱动程序sqflite驱动的iOS sqlite实际上比使用select慢2倍左右。不知道它是如何伸缩的。这实际上只会显示最大值-您能指出如何在嵌套查询中使用它吗?也把代码放进代码对不起,把这个答案和另一个问题弄混了。因此,否决票。它被锁定了,不能改变我的投票。请编辑它,这样我就可以投票了。
SELECT * FROM `permlog` as one
RIGHT JOIN (SELECT MAX(id) as max_id FROM `permlog`) as two 
ON one.id = two.max_id
SELECT MAX(ID) FROM tablename LIMIT 1
SELECT * FROM `permlog` as one
RIGHT JOIN (SELECT MAX(id) as max_id FROM `permlog`) as two 
ON one.id = two.max_id