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

如何在SQL中排除含指定双词的行?含Uber与Uber Eats场景

两类SQL查询的正确写法

一、筛选包含uber但排除所有uber eats相关内容的行

你的原条件没覆盖到uber和eats之间存在空格、特殊字符的情况,需要用正则表达式匹配任意分隔符。以下是主流数据库的写法:

MySQL/MariaDB

WHERE LOWER(name) LIKE '%uber%'
AND LOWER(name) NOT REGEXP 'uber\\W+eats'
  • \\W+ 匹配任意非单词字符(空格、星号、标点等)一次或多次,确保排除所有uber与eats中间有分隔的情况。

PostgreSQL

WHERE LOWER(name) LIKE '%uber%'
AND LOWER(name) !~ 'uber\W+eats'

SQL Server

WHERE LOWER(name) LIKE '%uber%'
AND NOT REGEXP_LIKE(LOWER(name), 'uber\W+eats')

若你的SQL Server版本不支持REGEXP_LIKE,可使用LIKE通配符组合(覆盖范围有限):

WHERE LOWER(name) LIKE '%uber%'
AND NOT (LOWER(name) LIKE '%uber%eats%')

二、单独筛选仅含uber eats相关内容的行

用正则匹配uber与eats之间的任意分隔符:

MySQL/MariaDB

WHERE LOWER(name) REGEXP 'uber\\W+eats'

PostgreSQL

WHERE LOWER(name) ~ 'uber\W+eats'

SQL Server

WHERE REGEXP_LIKE(LOWER(name), 'uber\W+eats')

如果需要避免类似“xubereatsy”这类误匹配,可添加单词边界控制,比如\\buber\\W+eats\\b,根据实际需求调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:03:29