You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MySQL在fullName列实现多关键词搜索并匹配指定行?

实现多关键词匹配的SQL查询语句

你原来的查询有两个问题:一是把列名fullName用单引号括起来,导致SQL把它当成了字符串常量而非列名;二是用整个Peter Thompson作为匹配条件,只有当列值包含这个连续字符串时才会命中,但你的两行数据里Peter和Thompson之间还有其他内容,所以无法匹配。

要返回同时包含Peter和Thompson的行,有以下两种常用方法:

方法一:使用多个LIKE条件(通用所有SQL数据库)

这是最通用的方式,无需依赖数据库特定功能:

SELECT * 
FROM your_table 
WHERE fullName LIKE '%Peter%' 
  AND fullName LIKE '%Thompson%';

这个语句会分别检查fullName列是否包含"Peter"和"Thompson",只要两个关键词都存在(不管顺序和中间内容),就会返回对应行,正好匹配你的两行数据。

方法二:使用全文搜索(适合大数据量,需数据库支持)

如果你的数据库支持全文搜索(比如MySQL、PostgreSQL、SQL Server等),可以用这种效率更高的方式,以MySQL为例:
首先需要给fullName列创建全文索引:

ALTER TABLE your_table ADD FULLTEXT INDEX idx_fullname(fullName);

然后执行查询:

SELECT * 
FROM your_table 
WHERE MATCH(fullName) AGAINST('Peter Thompson' IN BOOLEAN MODE);

BOOLEAN模式下,多个关键词默认是AND关系,会返回同时包含两个关键词的行,性能比LIKE更优,适合数据量大的场景。

内容的提问来源于stack exchange,提问作者network_potato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:25:01