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

SQL如何查询某列的值存在于另一列中的对应数据行

SQL筛选子串匹配行方案

通用跨数据库实现

使用LIKE关键字拼接通配符即可覆盖完全匹配、子串匹配的所有场景,兼容绝大多数主流数据库:

SELECT * FROM Name WHERE MiddleName LIKE CONCAT('%', Forename, '%');

各数据库专属简化写法

部分数据库提供了内置的子串位置判断函数,写法更直观:

  • MySQL 实现:
SELECT * FROM Name WHERE INSTR(MiddleName, Forename) > 0;
  • SQL Server 实现:
SELECT * FROM Name WHERE CHARINDEX(Forename, MiddleName) > 0;
  • PostgreSQL 实现:
SELECT * FROM Name WHERE POSITION(Forename IN MiddleName) > 0;

大小写不敏感匹配方案

如果需要忽略大小写匹配,可以统一转为大写/小写后再判断:

SELECT * FROM Name WHERE UPPER(MiddleName) LIKE CONCAT('%', UPPER(Forename), '%');

注意:如果Forename字段值可能包含%、_等SQL LIKE语法的通配符,需要先对特殊字符做转义处理,避免出现非预期的匹配结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:06:08