我有一个复杂的MySQL查询,我想要 the first row of the result to be a random row of the query result, and all following rows to be ordered by date, desc .
我希望这可以在不必使用UNION或必须两次调用mysql_query()的情况下完成 . 我使用PHP作为脚本语言 .
这是一个类似于地雷的问题,但那里的答案对我的特定情况不起作用:mysql query to select one specific row and another random row
所以,我的问题是它是否可以通过ORDER BY或任何其他方法完成 .
谢谢 .
2 回答
试试这个查询 -
我不认为这是可能的,或者至少,不是琐碎的 . 就集合而言 - 你要求数据库提供两个相互矛盾的东西 - 一组,随机排序,另一组按日期排序等 . 为了得到你想要的结果,你必须一起组合两组 . 如果您只想对数据库进行一次调用,则可以将其封装在存储过程中 .
EDIT
如果存储过程(或函数)由于某种原因可用,则视图也可以封装此逻辑 .