通过第一个字母排序sql查询

Jam*_*ell 7 php mysql sql search full-text-search

我试图根据第一个字母来命令我的mysql查询,但我使用的每个方法都限制了我的搜索.

示例 MySQL表值计算机服务abc计算机服务动态计算机服务

如果我搜索computer services我希望结果返回为:

**Name**
computer services
abc computer services
dynamic computer services
Run Code Online (Sandbox Code Playgroud)

我正在使用mysql fullsearch文本,但如果我使用name LIKE 'c%'我没有其他两个结果,例如

SELECT name FROM table WHERE match('name') against('computer services*' IN BOOLEAN MODE) AND name LIKE 'c%';
Run Code Online (Sandbox Code Playgroud)

这只会回来

  • 电脑服务

但我想要它回归:

  • 电脑服务
  • abc电脑服务
  • 动态计算机服务

我是mysql全搜索文本的新手.

a'r*_*a'r 2

首先使用与“开头为”大小写匹配的 order by 子句。我not like在这里使用布尔值是因为布尔值返回 0 或 1,我们想要反转它以首先匹配大小写的开头。

SELECT name 
FROM table 
WHERE match('name') against('computer services*' IN BOOLEAN MODE)
ORDER BY name NOT LIKE 'computer services%', name;
Run Code Online (Sandbox Code Playgroud)