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

Oracle SQL查询:筛选product_name不含_和<的产品信息

你的原查询问题在于,不同数据库对LIKE语法里的字符匹配规则不一样,而且下划线_本身是LIKE的通配符(匹配单个任意字符),需要特殊处理。下面分两种常用数据库给你正确写法:

MySQL/MariaDB 写法

MySQL不支持方括号的字符集合匹配,可通过两种方式实现需求:

  1. 用NOT LIKE分别排除,注意转义下划线(用反斜杠\或指定ESCAPE字符):
SELECT * FROM product_information
WHERE product_name NOT LIKE '%\_%'
  AND product_name NOT LIKE '%<%';

如果担心反斜杠转义有问题,也可以显式指定ESCAPE:

SELECT * FROM product_information
WHERE product_name NOT LIKE '%!_%' ESCAPE '!'
  AND product_name NOT LIKE '%<%';
  1. 用正则表达式更简洁:
SELECT * FROM product_information
WHERE product_name NOT REGEXP '[_<]';

SQL Server 写法

SQL Server支持方括号的字符集合匹配,你可以把要排除的字符都放在方括号里,或者分开写:

  1. 单条件匹配排除多个字符:
SELECT * FROM product_information
WHERE product_name NOT LIKE '%[_<%]%';
  1. 分开条件更直观:
SELECT * FROM product_information
WHERE product_name NOT LIKE '%[_]%'
  AND product_name NOT LIKE '%[<]%';

注意:原语句里的%[_[<]%写法错误,方括号内的_[<会被解析为字符_、[和<,而非你想要的_和<,所以无法正确排除目标字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:40:33