2来自同一个表的SQL查询
SELECT *
FROM yourtable
ORDER BY
id = (SELECT id FROM yourtable ORDER BY date DESC LIMIT 1) DESC,
last_name
我喜欢“按计算布尔标志排序”技巧。 – 2010-07-20 20:31:06
它似乎有效。谢谢你的帮助! – Dylan 2010-07-20 20:35:37
为什么不运行两个查询?这似乎是一个明显的答案。
不是每个任务都需要在单个查询中完成。你是否也在一个语句中编写了所有的PHP代码? ;-)
我知道单独做这件事情会更有意义(我通常会这样做),但是如果没有太多细节的话,如果在1个查询中有办法做到这一点,那将会容易得多。 – Dylan 2010-07-20 20:28:46
使用MySQL的假设,你可以使用:
(SELECT t.*
FROM TABLE t
ORDER BY t.date DESC
LIMIT 1)
UNION
(SELECT t.*
FROM TABLE t
ORDER BY t.last_name)
您需要封装在括号中的语句来应用ORDER BY - 否则,ORDER BY被应用到UNION后的结果集。
这将包括第一行两次,一次在顶部,再次低一些,这是海报可能不想要的。 – 2010-07-20 20:36:40
@斯科特斯塔福德:不,它不会因为联盟删除重复。如果它是'UNION ALL',那么你会是对的# – 2010-07-20 20:37:46
有趣......每天学点东西。谢谢。 – 2010-07-20 20:55:14
是“日期”,本身保证是唯一的? – Wrikken 2010-07-20 20:27:22
你的表格结构是什么?你有PK吗? – 2010-07-20 20:27:46
日期不是唯一的,因为它是从日期格式导入的时间戳。是的,我有一个名为“id”的PK。 – Dylan 2010-07-20 20:31:10