如何从MySQL中的表中删除最后一条记录(有条件的)?

要从表中删除最后一条记录(有条件的记录),您需要将ORDER BY DESC与LIMIT一起使用 

1.语法如下:

DELETE FROM yourTableName WHERE yourColumnName1=yourValue ORDER BY yourColumnName2 DESC LIMIT 1;

上面的语法将从表中删除最后一条记录(有条件的)。它将按降序对列进行排序,然后选择要删除的第一个元素。

为了理解上述语法,让我们创建一个表。创建表的查询如下:

mysql> create table UserLoginTable

   -> (

   -> Id int NOT NULL AUTO_INCREMENT,

   -> UserId int,

   -> UserLoginDateTime datetime,

   -> PRIMARY KEY(Id)

   -> );

使用insert命令在表中插入一些记录。查询如下:

mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-01-27 13:47:20');

mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(1,'2018-11-28 12:30:12');

mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-01-26 11:30:30');

mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(1,'2015-03-11 15:23:55');

mysql> insert into UserLoginTable(UserId,UserLoginDateTime) values(2,'2019-03-21 16:01:56');

现在,您可以使用select语句显示表中的所有记录。查询如下:

mysql> select *from UserLoginTable;

以下是输出:

+----+--------+---------------------+

| Id | UserId | UserLoginDateTime   |

+----+--------+---------------------+

|  1 |      2 | 2019-01-27 13:47:20 |

|  2 |      1 | 2018-11-28 12:30:12 |

|  3 |      2 | 2019-01-26 11:30:30 |

|  4 |      1 | 2015-03-11 15:23:55 |

|  5 |      2 | 2019-03-21 16:01:56 |

+----+--------+---------------------+

5 rows in set (0.00 sec)

这是从表中删除最后一条记录(有条件的)的查询:

mysql> delete from UserLoginTable where UserId=2 ORDER BY UserLoginDateTime DESC LIMIT 1;

使用select语句再次检查表记录。查询如下:

mysql> select *from UserLoginTable;

以下是输出:

+----+--------+---------------------+

| Id | UserId | UserLoginDateTime   |

+----+--------+---------------------+

|  1 |      2 | 2019-01-27 13:47:20 |

|  2 |      1 | 2018-11-28 12:30:12 |

|  3 |      2 | 2019-01-26 11:30:30 |

|  4 |      1 | 2015-03-11 15:23:55 |

+----+--------+---------------------+

4 rows in set (0.00 sec)

现在,从具有UserId 2的表中删除最后一条记录。

以上是 如何从MySQL中的表中删除最后一条记录(有条件的)? 的全部内容, 来源链接: utcz.com/z/359886.html

回到顶部