请考虑下表。
+-----+--------------+---------------------+
| id | account_name | date_time |
+-----+--------------+---------------------+
| 123 | John | 2017-07-01 12:12:12 |
+-----+--------------+---------------------+
| 124 | Henry | 2017-07-02 12:12:12 |
+-----+--------------+---------------------+
| 126 | Vlad | 2017-07-03 12:12:12 |
+-----+--------------+---------------------+
如果我执行以下查询,
SELECT id FROM table_name order by date_time desc limit 0,1;
我得到输出(非常好)
+-----+
| id |
+-----+
| 126 |
+-----+
现在,如果我执行查询,
SELECT count(*), id FROM table_name ORDER BY date_time DESC LIMIT 0,1;
我得到了输出
+-------+-----+
| count | id |
+-------+-----+
| 3 | 123 |
+-------+-----+
请注意,在选择count(*)
时,查询不会考虑order
。这是什么问题?
我想要以下回复。
+-------+-----+
| count | id |
+-------+-----+
| 3 | 126 |
+-------+-----+
答案 0 :(得分:1)
你可以使用这样的查询:
SELECT count(*), max(id) AS id
FROM table_name
ORDER BY id DESC
LIMIT 0,1;
答案 1 :(得分:1)
让我们尝试以下声明:
SELECT (SELECT COUNT(*) FROM `table_name`) 'Count', id
FROM `table_name`
ORDER BY id DESC LIMIT 0,1;