[英]MySQL select all last added query
我试图选择所有最近添加的项目。
我必须找到最近添加的考试是什么(有时不止一次,如下所示)
这是数据库的示例。
id name start_date end_date duration
4 Exam August 2011 24.8.2011 0000-00-00 20
3 Exam July 2011 28.7.2011 0000-00-00 20
5 Exam August 2011 24.8.2011 0000-00-00 20
6 Exam August 2011 24.8.2011 0000-00-00 20
25 Exam September 2011 26.9.2011 07.10.2011 20
26 Exam September 2011 26.9.2011 07.10.2011 20
27 Exam September 2011 26.9.2011 07.10.2011 20
这是即时通讯使用的查询,我的问题是有更好的方法吗? 一些优化?
SELECT * FROM me_tests WHERE name = (
SELECT name FROM me_tests ORDER BY start_date DESC LIMIT 1
)
第二个查询将查找最后添加的名称(与开始日期相同),将其传递给第一个选择,并根据该名称选择所有其他测试。
SELECT * FROM me_tests ORDER BY start_date DESC LIMIT 1
要么 -
SELECT * FROM me_tests
WHERE start_date =
(SELECT MAX(start_date) FROM me_tests);
我会用
SELECT * FROM me_tests ORDER BY start_date DESC LIMIT 1
...除了使用*
是不好的以外,因此您应该命名要检索的所有列。
如果最后添加的项目被同时添加但名称不同怎么办?
在那种情况下,我认为您会想要这样的查询。
SELECT
*
FROM me_tests
WHERE start_date = (SELECT
start_date
FROM me_tests
ORDER BY start_date DESC LIMIT 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.