MYSQL 通配符搜索 - 排序结果问题

标签 mysql

我在 mysql 数据库中有一张化学品表。我想执行通配符搜索 -

SELECT * FROM chemical WHERE chemical like '%toluene%'

SQL查询结果为-

Bromotoluene
Chlorotoluene (Benzyl chloride)
Cymene (Isopropyltoluene)
Dinitrotoluene (DNT)
Isopropyl toluene (Cymene)
Octachlorotoluene
Toluene (Toluol)*
Toluene di-isocyanide (TDI)
Trinitrotoluene (TNT)

与字符串的第一个字符(在本例中为“toluene”)完全匹配的结果是否可以列在任何其他结果之前?例如 - 我想展示 -

Toluene (Toluol)
Toluene di-isocyanide (TDI) 

首先,然后是其余的结果。

非常感谢您的帮助。

最佳答案

我会将查询分成两部分:

select * FROM chemical where chemical like 'toluene%'
union
select * FROM chemical where chemical like '%toluene%'

为了把更相关的结果放在最前面。 union 将自动排除重复的结果。

关于MYSQL 通配符搜索 - 排序结果问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756745/

相关文章:

mysql - 如何通过函数方法替换mysql上任何查询中的特殊字符?

MYSQL 查询隐藏字符失败?

php - session 变量在 MySQL 语句中不起作用

mysql - 获取连接 2 个表的行数

mysql - 使用Mysql将表导入数据库时​​出现SQL语法错误

mysql - 这是 MongoDB 用例吗?

php - 此后如何使用 explode ,因为在我的数据库列中,所有值都在产品列中可用,如下所示

MySQL - BOOLEAN 模式下的 FULLTEXT + 使用 View 字段的相关性

mysql - 如何每隔[时间间隔]从 CSV 文件更新 MySQL 表?

MySQL 查询给出重复条目错误 1062