我需要从两列中选择文本,但也要按出版日期顺序排列。
“title LIKE?AND description LIKE?”在两列中工作,我得到了我期望的结果,但是“pubdate”并没有对DESC进行排序。
我需要使用标题喜欢?和描述喜欢?+ pubdate DESC
pubdate是一个时间戳号。
**pubdate现在订购:**旧,新,旧,新,旧
**我需要如何订购:**新,新,旧,旧,旧
我尝试了这个SQL查询,但失败了。
SELECT source,title,description,link,pubdate
FROM feeds
USE INDEX(PRIMARY,idx_title_description)
WHERE MATCH(title,description) AGAINST(? IN BOOLEAN MODE)
ORDER BY title LIKE ? AND description LIKE ? AND pubdate DESC
LIMIT 60
1条答案
按热度按时间py49o6xq1#
ORDER BY
子句的结构类似于SELECT
子句,而不是WHERE
子句。它们具有逗号分隔的列列表。1.像
title LIKE ?
这样的表达式在true时产生值1
,在false时产生值0
。因此,如果您想按最近的日期对结果集进行排序,但首先显示匹配的结果集,则需要。
第一个DESC在这里是因为你想要
(title LIKE ? AND description LIKE ?)
为真的行--值为1
--首先,然后是为假的行--0
--第二。此
true
/false
::1
/0
是一个特定于MySQL的hack。这会将所有匹配的行放在结果集中的第一位,然后是不匹配的行。如果您希望它们按日期排序,并且匹配的行在每个日期中首先显示,请翻转
ORDER BY
中两项的顺序: