mysql 按日期排序得到 10 个结果然后再次按 id 排序

标签 mysql sql-order-by

在我目前的方法中,我在 sql 查询中使用 order by date,然后将 back results 设置为一个新数组,通过 php 按 id 对数组进行排序

SELECT * FROM table 
WHERE 
(
MATCH (title,content) 
AGAINST ('+$search' IN BOOLEAN MODE)
) 
order by date DESC 
limit 0,10

我想问一下,有没有sql方法,先order by date得到10个结果,然后在这10个结果中,再order by id仅在一个 sql 查询中?

最佳答案

在您当前的查询周围包装一个外部查询。

SELECT q.* 
    FROM (SELECT * FROM table 
          WHERE 
          (
          MATCH (title,content) 
          AGAINST ('+$search' IN BOOLEAN MODE)
          ) 
          order by date DESC
          limit 0,10) q
   ORDER BY q.id

关于mysql 按日期排序得到 10 个结果然后再次按 id 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9331644/

相关文章:

mysql - 在 Python 3 中通过 SQLAlchemy 缓慢插入 Cloud SQL

mysql - 根据关系在帮助表中将两个表连接在一起

sql - "SELECT TOP"、 "LEFT OUTER JOIN"、 "ORDER BY"给出额外的行

group-by - pig 按查询排序

mysql - 仅使用一个选择在随机排序的子查询上重写分组依据

php - 如何按last_visit排序并显示用户的最近访问者?

MySQL 日期查询现在更改字符串不起作用

php - 批量插入数据库

mysql - 子查询中选定的列(多列)未显示

mysql - 查找每个组件的最新记录 MySQL