php - 按首字母排序sql查询

标签 php sql mysql search full-text-search

我试图根据第一个字母对我的 mysql 查询进行排序,但我使用的每种方法都限制了我的搜索。

例子 MySQL表 值(value) 计算机服务 美国广播公司电脑服务 动态计算机服务

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

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

我正在使用 mysql 全搜索文本,但是如果我使用 name LIKE 'c%' 我不会使用其他两个结果,例如

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

这只会返回

  • 计算机服务

但我希望它返回:

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

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

最佳答案

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

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

关于php - 按首字母排序sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4935563/

相关文章:

mysql - SQLite 查找两个表之间的差异

mysql - 如何直接通过 select 语句创建复杂查询而不是创建函数

mysql - JSP与MYSQL连接异常

php - sql中如何查找一列中有多少个不同的单词?

php - CakePHP 国际化

c# - ExecuteNonQuery:连接属性尚未初始化

mysql - 如何防止 MySQL 数据库中出现重复的列行,同时保持顺序不变

mysql select查询不同表比较

php - 选择字段包含可能值的数据

php - 如何使用 wamp 在 netbeans 7.1.1 中为 zend 框架 1.11.11 设置开发环境?