繁体   English   中英

MySQL按Where子句匹配的顺序排序结果

[英]MySQL Ordering Results by the order of Where Clause Matched

我有一个查询,该查询在空间上标记了一个短语,并且需要寻找该短语的最佳匹配。 它需要先返回该匹配项。 我正在尝试使用where子句在单个查询中执行此操作。 这可能吗? 我正在尝试以下方法:

为:我的短语

从myTable中选择名称,其中name =“ my短语”或“%my短语%”之类的名称或(%%%%之类的名称,“%phrase%”之类的名称)或(%%%的名称之类的名称或“%phrase%”)限制5;

基本上,我想按where子句的顺序匹配前5个匹配项。 我知道默认情况下,MySQL以优化的方式评估where子句。 有什么方法可以迫使它按顺序评估它们? 如果是这样,如何使它按where子句匹配的顺序返回结果?

请使用全文搜索。 它更快,更灵活,可让您对结果进行评分。 Google更多

SELECT ..., MATCH(col_name) AGAINST ('my pharse') AS score FROM tbl_name WHERE MATCH(col_name) AGAINST('my pharse') ORDER BY score DESC;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM