是否可以构建以下SQL查询

ser*_*erg 4 mysql sql database

原始查询看起来像这样(MySQL):

SELECT * 
FROM books 
WHERE title LIKE "%text%" OR description LIKE "%text%" 
ORDER BY date
Run Code Online (Sandbox Code Playgroud)

是否可以重写它(没有工会或程序),因此结果将如下所示:

  • 标题匹配按日期排序的查询的书籍列表,后跟:
  • 描述符合按日期排序的查询的书籍列表

所以基本上只是给匹配标题而不是描述赋予更高的优先级.

Ror*_*ory 18

在sql server中我会做以下事情:

select * from books 
where title like '%text%' or description like '%text%'
order by case when title like '%text%' then 1 else 2 end, date
Run Code Online (Sandbox Code Playgroud)

我不确定你是否可以在mysql中的ORDER BY中包含不在SELECT中的列,但这是我使用的原则.否则,只需在SELECT中包含派生列.