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

SQL中LIKE的反向操作符是什么?如何查询输入字符串包含的表字段ID?

解决方案

高效查询被输入字符串包含的字段ID

无需拆分输入字符串或在SQL外做额外处理,直接用数据库内置的字符串包含判断函数就能简洁高效实现需求。不同主流数据库的实现示例如下(假设数据表名为test_table,输入字符串为'hello, this is a test'):

MySQL/MariaDB

使用INSTR()函数,该函数返回子串在目标字符串中的起始位置,不存在则返回0:

SELECT id
FROM test_table
WHERE INSTR('hello, this is a test', substring) > 0;

PostgreSQL

使用strpos()函数,逻辑与INSTR()一致:

SELECT id
FROM test_table
WHERE strpos('hello, this is a test', substring) > 0;

SQL Server

使用CHARINDEX()函数:

SELECT id
FROM test_table
WHERE CHARINDEX(substring, 'hello, this is a test') > 0;

这些方法能直接筛选出substring字段值被输入字符串包含的记录,比拆分输入后多次使用LIKE更高效简洁。

LIKE的反向匹配实现

SQL中没有专门的“反向LIKE”操作符,但可以通过两种方式实现等价效果:

  1. 反向构造LIKE语句:将输入字符串作为匹配对象,用通配符包裹字段值作为匹配模式:
    SELECT id
    FROM test_table
    WHERE 'hello, this is a test' LIKE CONCAT('%', substring, '%');
    
  2. 使用字符串包含函数:就是前面提到的INSTR/strpos/CHARINDEX这类函数,它们专门用于判断A字符串是否包含B字符串,执行效率通常比反向LIKE更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:40:22