选择MySQL中最近添加的有值记录

选择MySQL中最近添加的有值记录,mysql,Mysql,我有一张结构如下的桌子 CREATE TABLE `data` ( `type` varchar(64) DEFAULT NULL, `subscr_id` varchar(64) DEFAULT NULL ) 在此表中,有许多记录的subscr\u id为id100。我想选择最近添加到表中的subscr\u id为id100的记录 我该怎么做呢?我认为您必须改进您的表设计,并在字段中添加auto-inctemntal主键或创建的。 但是,如果您不能做到这一点,或者您需要只运行一次查询

我有一张结构如下的桌子

CREATE TABLE `data` (
  `type` varchar(64) DEFAULT NULL,
  `subscr_id` varchar(64) DEFAULT NULL
)
在此表中,有许多记录的
subscr\u id
id100
。我想选择最近添加到表中的
subscr\u id
id100
的记录


我该怎么做呢?

我认为您必须改进您的表设计,并在字段中添加auto-inctemntal
主键
或创建的

但是,如果您不能做到这一点,或者您需要只运行一次查询,您可以尝试这种方法(这有点棘手,但它可以工作您可以添加一个ID-identify列。在这种情况下,这是最好的性能

ALTER TABLE data ADD COLUMN id INT NULL AUTO_INCREMENT FIRST, ADD KEY(id); 
运行下面的SQL,您将收到subscr_id为id100的记录,该记录是最近添加到表中的

SELECT * FROM `data` WHERE subscr_id = 'id100' ORDER BY id DESC LIMIT 1;

您首先要有一个主键。或一个日期列。您不会创建一个2列的表,并期望系统为您提供“最新的”一个包含0个信息的表,可以断定哪一个是最新的。您不能选择它,因为您没有时间,当添加记录时,您需要创建时间或自动递增列来指定插入顺序。@GordonLinoff但如果表已经存在,并且我们需要在该表中查找一行而不自动递增。@GordonLinoff已修订的主键且未在字段中创建_…一定有某种解决方案…@VladimirKovpak没有。您使用的列旨在为您提供这些信息。您不依赖magic。MySQL将在该实例中创建隐藏的主键,但它不会让您以任何方式使用它,因为它将其用于内部目的如果你创建了一个像这样的表格,你犯了一个错误,你就改正了错误。你不会试图破解你的路。如果问题的作者考虑改变表格的机会,我认为这是最好的答案!