Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Php MySQL获取没有最后一条记录的记录_Php_Mysql - Fatal编程技术网

Php MySQL获取没有最后一条记录的记录

Php MySQL获取没有最后一条记录的记录,php,mysql,Php,Mysql,我正在编写一个查询以从MySQL表中获取记录,如下所示 SELECT * FROM alerts 我有一个列id是主的和自动递增的 id,host,domain,alert_time 但是我需要得到没有这个表的最后一条记录的记录,任何人都知道如何为此编写MySQL查询。谢谢尝试用这种方法获取id列的MAX值,然后选择除此之外的所有行 SELECT * FROM alerts WHERE ID != (SELECT MAX(ID) FROM alerts) 用这种方法获取id列的MAX值,然

我正在编写一个查询以从MySQL表中获取记录,如下所示

SELECT * FROM alerts
我有一个列id是主的和自动递增的

id,host,domain,alert_time

但是我需要得到没有这个表的最后一条记录的记录,任何人都知道如何为此编写MySQL查询。谢谢

尝试用这种方法获取
id
列的
MAX
值,然后选择除此之外的所有行

SELECT * FROM alerts WHERE ID != (SELECT MAX(ID) FROM alerts)

用这种方法获取
id
列的
MAX
值,然后选择除此之外的所有行

SELECT * FROM alerts WHERE ID != (SELECT MAX(ID) FROM alerts)

另一种方法是:

SELECT *
FROM alerts a
ORDER BY id DESC
LIMIT 1,99999999
我更喜欢Manish关于删除最大id的回答,但在某些情况下这是合适的。例如,如果您想要除最近的三条记录之外的所有记录,则使用此方法更容易


(注意:
9999999
只是获取其余行的一个大数字。)

另一种方法是:

SELECT *
FROM alerts a
ORDER BY id DESC
LIMIT 1,99999999
我更喜欢Manish关于删除最大id的回答,但在某些情况下这是合适的。例如,如果您想要除最近的三条记录之外的所有记录,则使用此方法更容易



(注意:
9999999
只是获取其余行的一个大数字。)

SQL表表示无序集。没有“最后一条”记录(或“第一条”记录或“第二条”记录)的概念,除非另一列指定了顺序。你有这样的专栏吗?当问问题时,你应该包括样本数据和期望的结果。我有一个名为id的主键,它是自动递增的,与@GordonLinoff一致。除非定义了“最后一条记录”的确切含义,否则这个问题是不清楚的,并将导致基于不同解释的不同答案。^@BeingSunny的副本以前没有发现:)SQL表表示无序集。没有“最后一条”记录(或“第一条”记录或“第二条”记录)的概念,除非另一列指定了顺序。你有这样的专栏吗?当问问题时,你应该包括样本数据和期望的结果。我有一个名为id的主键,它是自动递增的,与@GordonLinoff一致。除非定义了“最后记录”的确切含义,否则问题不清楚,并将根据不同的解释得出不同的答案。^@BeingSunny的副本以前没有发现:)如何知道最后一行的ID最高?因为它的自动递增创建列ID并使其自动递增如果表没有任何自动递增字段,如何知道最后一行的ID最高ID?因为它的自动递增设置列ID,如果您的表没有任何自动递增,则使其自动递增field@Gordon林诺夫,先生,你能解释一下这个大数字吗?我是说
限制199999999
?@BeingSunny。我想是的。
1
是偏移量。这从0开始,因此“1”表示跳过第一行。99999999是要获取的行数。这个大数字足够大,可以得到其余的行。你必须在那里放一个常数,所以它只是一个大数字。@Gordon Linoff,天哪,我在你的查询中错过了
ORDER BY id DESC
,这就是为什么我对
limit 19999999
有点困惑的原因。谢谢您的回复。@Gordon Linoff,先生,您能解释一下这个大数字吗?我是说
限制199999999
?@BeingSunny。我想是的。
1
是偏移量。这从0开始,因此“1”表示跳过第一行。99999999是要获取的行数。这个大数字足够大,可以得到其余的行。你必须在那里放一个常数,所以它只是一个大数字。@Gordon Linoff,天哪,我在你的查询中错过了
ORDER BY id DESC
,这就是为什么我对
limit 19999999
有点困惑的原因。谢谢你的回复。