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

如何使用SQL LIKE运算符匹配两列姓名数据(输入值为“Obe”)

使用SQL LIKE同时匹配多列数据

现有数据表

LastNameFirstName
Mr.Bean
Mr.Jobe

需求

当输入关键词为“Obe”时,用SQL的LIKE运算符同时匹配LastName和FirstName两列,只要任意一列包含该关键词就返回对应行。

你当前尝试的SQL问题

你写的SQL语句:

Select * from name where
inputname like (‘%’ || (trim(firstname) || ‘%’));

这里有两个问题:一是匹配逻辑搞反了——应该是用列值去匹配输入的关键词,而非让关键词匹配列值;二是只检查了FirstName列,没覆盖LastName列。

正确写法

直接写死关键词的情况

SELECT * 
FROM name 
WHERE LastName LIKE '%Obe%' 
   OR FirstName LIKE '%Obe%';

执行这条语句后,数据表中FirstName为Bean的行(包含“Obe”子串)会被匹配返回。

关键词为变量的情况(以Oracle为例)

如果关键词是动态传入的变量,用字符串拼接生成匹配条件:

SELECT * 
FROM name 
WHERE LastName LIKE '%' || 'Obe' || '%' 
   OR FirstName LIKE '%' || 'Obe' || '%';

注意:不同数据库的字符串拼接方式不同,比如MySQL用CONCAT('%', 'Obe', '%'),SQL Server用'%' + 'Obe' + '%',根据你使用的数据库调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:50:29