MySQL 搜索字符串首先以 string 开头,但也会返回包含 string 的任何结果

标签 mysql string search wildcard

我想在列中搜索值,并首先返回以搜索开头的值,然后返回包含该值的任何值。

例如: 搜索: 约翰 约翰·多伊 约翰·库克 约翰尼·阿普尔塞德 比尔·约翰逊 特德·约翰逊 约翰逊夫妇

现在最简单的方法似乎是查询“WHERE Name LIKE 'john%'”,然后再次查询 WHERE Name LIKE '%john%',并合并结果。不过,似乎有一种方法可以在一个查询中执行此操作。有什么帮助吗?

最佳答案

为什么不在字符串两侧使用简单的通配符,而是从提供的字符串开始对结果进行排序

select * from t where col like '%john%' order by  col like 'john%' desc

order by col like 'john%' desc 将得到 bool 值 0/1,因此以 john 开头的记录将首先显示,然后返回其他匹配的记录

关于MySQL 搜索字符串首先以 string 开头,但也会返回包含 string 的任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25435735/

相关文章:

php - 如何在已有的MYSQL数据库表中添加列条目?

c++ - 如何为 vector <string> 设置默认参数以在类中的默认构造函数中使用?

C# 十六进制到 ascii

mysql - 连接多个 MySQL 表进行搜索。这是 MySQL View 的一个很好的用途吗?

svn - Subversion 在整个存储库的所有修订版中搜索文本

search - Zookeeper Solr 集成

mysql - 从sql数据库检索图像并将其放入datalist

mysql - Maatwebsite import csv 超出最大执行时间 60 秒错误

python - 如何在Python中编写正则表达式?我想写R.E.对于以下示例

c++ - C中的mysql聚合UDF(用户定义函数)