在MySQL中如何使用LIKE按最佳匹配排序

当您使用LIKE操作符从数据库中搜索和获取匹配的结果时,将根据它们的条目来选择记录。另一方面,orderby关键字允许您根据特定列按升序或者降序对结果集进行排序。但是升序或者降序对于使用LIKE运算符的搜索结果没有用处。因为结果集与MySQL中的ORDER BY不相关。
在LIKE搜索中,必须根据匹配的单词对结果进行排序,以使结果集更具相关性。这里我们将向您展示如何在MySQL中使用LIKE按最佳匹配对结果进行排序。
下面的SQL查询将按照LIKE搜索中的最佳匹配对MySQL结果进行排序。匹配结果将按以下顺序排序:
-与搜索词完全匹配。
-从搜索词开始。
-在中间搜索单词。
-以搜索词结尾。
-在任何位置搜索单词。

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY
  CASE
    WHEN word LIKE 'searchstring' THEN 1
    WHEN word LIKE 'searchstring%' THEN 2
    WHEN word LIKE '%searchstring' THEN 4
    ELSE 3
  END

在示例SQL查询中,假设如下:
-数据库表名-“words”
-列名-“word”
-搜索关键字-“searchstring”

日期:2020-06-02 22:17:39 来源:oir作者:oir