MySQL - 选择最后插入行最简单的方法

时间:2010-05-05 04:22:50

标签: mysql select

我只需要选择条件指定的最后输入的行,例如:

SELECT ID from bugs WHERE user=Me

我只需要返回用户'我'输入的最后一个ID。有一个简单的方法吗?谢谢。

9 个答案:

答案 0 :(得分:38)

最好有TIMESTAMP列,默认为CURRENT_TIMESTAMP ..这是您可以在这里找到的唯一真正的预测行为。

您可以做的第二件事是ORDER BY ID DESC LIMIT 1,并希望最新的ID是最大值。

答案 1 :(得分:29)

SELECT MAX(ID) from bugs WHERE user=Me

答案 2 :(得分:29)

您可以使用ORDER BY ID DESC,但如果您这样做会更快:

SELECT * FROM bugs WHERE ID = (SELECT MAX(ID) FROM bugs WHERE user = 'me')

如果你有一张巨大的桌子,它可能会有很大的不同。

修改

您甚至可以设置一个变量,以防您需要多次(或者如果您认为它更容易阅读)。

SELECT @bug_id := MAX(ID) FROM bugs WHERE user = 'me';
SELECT * FROM bugs WHERE ID = @bug_id;

答案 3 :(得分:13)

实现这一目标的一种方法是订购记录并限制为1.例如,如果您有下表('数据')。

    id | user | price
   -------------------
    1  |  me  | 40.23
    2  |  me  | 10.23

尝试以下sql查询

  select * from data where user='me' order by id desc limit 1

答案 4 :(得分:8)

在并发中,最新记录可能不是您刚刚输入的记录。最好使用主键获取最新记录。

如果是自动增量字段,请使用SELECT LAST_INSERT_ID();获取您刚刚创建的ID。

答案 5 :(得分:3)

SELECT * FROM `table_name` 
ORDER BY `table_name`.`column_name` DESC
LIMIT 1 

答案 6 :(得分:0)

仅在从php运行mysql查询后

通过

获取
$lastid=mysql_insert_id();

这给您Alst自动增量ID值

答案 7 :(得分:0)

MySqlCommand insert_meal = new MySqlCommand("INSERT INTO meals_category(Id, Name, price, added_by, added_date) VALUES ('GTX-00145', 'Lunch', '23.55', 'User:Username', '2020-10-26')", conn);
if (insert_meal .ExecuteNonQuery() == 1)
{
    long Last_inserted_id = insert_meal.LastInsertedId;
    MessageBox.Show(msg, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Failed to save meal");
            }

答案 8 :(得分:-1)

从错误中选择ID,其中user = Me ORDER BY CREATED_STAMP DESC;  BY CREATED_STAMP DESC首先从上次创建的索引处获取这些数据。

我希望它能解决您的问题