mysql非字母顺序?

mysql非字母顺序?,mysql,sql,Mysql,Sql,我有这张桌子: id | businessName| keywords ============================ 1 Adam FOX 2 FOX bla bla bla 如果用户插入字符串,我想在businessName和keywords列中搜索此字符串。因此,我运行此查询: SELECT * FROM `business` WHERE `businessName` LIKE '%str%' OR `ke

我有这张桌子:

id | businessName|  keywords
============================
 1      Adam         FOX
 2      FOX          bla bla bla      
如果用户插入字符串,我想在businessName和keywords列中搜索此字符串。因此,我运行此查询:

SELECT * FROM `business` WHERE `businessName` LIKE '%str%' OR `keywords` LIKE '%str%'
我的问题是:

首先,我想获取名称与
str
匹配的业务,然后获取关键字与
str
匹配的业务


i、 e:用户输入单词
FOX
,mysql将返回两个业务(adam和FOX),在这种情况下,我希望mysql首先返回FOX(因为它的名称与
str
)然后返回adam(因为它的关键字与
str
)您可以根据匹配生成的值排序:

SELECT 
  * 
FROM `business` 
WHERE 
  `businessName` LIKE '%str%' OR 
  `keywords` LIKE '%str%'
ORDER BY
  CASE WHEN `businessName` LIKE '%str%' THEN
    0
  ELSE
    1
  END
上面的示例非常通用,但以下内容也适用于MySQL,只需按条件排序即可:

SELECT 
  * 
FROM `business` 
WHERE 
  `businessName` LIKE '%str%' OR 
  `keywords` LIKE '%str%'
ORDER BY
  `businessName` LIKE '%str%' DESC
您需要按顺序添加
DESC
,因为匹配项(true)的排名高于不匹配项(false)