我正在尝试编写一个查询,以查找除了空格之外没有空格的字符串。这意味着“xx applexx”、“xxapple xx”和“xx apple xx”是不可接受的,但是应该查询“xxapplexx”。
我试过了
select a
from b
where b.c not rlike '(an apple | an apple)'但这句话似乎是错的。
更多示例:假设我们在数据库中有4条记录:
Name Data
a I have an appleYo
b I havean apple Yo
c I have an apple Yo
d I havean appleYo预期结果应是:
Name Data
d I havean appleYo发布于 2019-05-10 20:52:33
你可以用
where b.c rlike '\\Sapple\\S'或者,如果要从匹配中“排除”非巫术空间字符(这在rlike场景中不是首选的,而是使用替换操作)。
where b.c rlike '(?<=\\S)apple(?=\\S)'见regex演示。
详细信息
\S -除空格外的任何字符(?<=\S) -一个积极的查找,需要任何字符,但在当前位置之前的空白(?=\S) -一个积极的前瞻性,需要任何字符,但在当前位置后立即空白。https://stackoverflow.com/questions/56083349
复制相似问题