当我们从数据库中检索数据时,我们使用类似这样的东西
SELECT * FROM Names
但是,我们将获取特定表中的所有数据。由于我要将一些数据更新到数据库并希望在数据库中最后一行数据和最新数据之间进行比较,如何才能选择和检索数据库的最后两行?
答案 0 :(得分:1)
如果您使用的是SQL Server,则可以执行以下操作:
SELECT TOP 2 * FROM Names ORDER BY Name DESC
答案 1 :(得分:1)
SQL Server语法:
SELECT TOP 2 column_name FROM table_name ORDER BY column_name DESC;
示例:
如果要从customer_name
表中检索customers
列的最后一个值,则需要编写以下查询:
SELECT LAST (CUSTOMER_NAME) AS LAST_CUSTOMER FROM CUSTOMERS;
答案 2 :(得分:0)
您应该在“名称”表中包括一列,以跟踪何时将名称添加到表中,因为您不能保证这些行的插入顺序是正确的。在该列中,您可以使用order by子句。
在MySQL语法中:
SELECT *
FROM Names
ORDER BY order_column DESC
LIMIT 2;
如果要按原样获取最后一行,则不能按插入的名称对表进行排序,因为这只是获取按字母顺序排序的名称列表中排在最后的2个名称。您可以尝试这样的方法,如果获得表中的行数,则在limit子句中包含偏移量:
SELECT *
FROM Names
LIMIT *num_rows*-2, 2;
您将必须知道使用此查询的行数,或使用其他查询来实现与limit配合使用的行数。但是,由于系统在插入行时可能不会对行进行排序,因此这仍然可能不准确。我仍然建议您在第一个选项中跟踪姓名的输入顺序/时间。