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

时间:2011-02-08 16:27:26

标签: php sql mysql search full-text-search

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

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

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

**Name**
computer services
abc computer services
dynamic computer services

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

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

这只会返回

  • 计算机服务

但我希望它能够回归:

  • 计算机服务
  • abc computer services
  • 动态计算机服务

我是mysql完整搜索文本的新手。

1 个答案:

答案 0 :(得分:2)

首先使用与'starts with'大小写匹配的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;