【发布时间】:2020-11-29 19:26:09
【问题描述】:
我在练习这个问题[Weather Observation Station 11] 当我使用
select distinct city
from station
where regexp_like(city, '^[^aeiou]|[^aeiou]$');
给了我正确的答案(458 个结果) 在哪里
select distinct city
from station
where not regexp_like(city, '^[aeiou]|[aeiou]$');
给了我错误的答案(299 个结果)。
我觉得'^[^aeiou]' 和NOT '^[aeiou]' 都应该给我一个不以 aeiou 结果开头的结果,但显然不是。这两个答案的逻辑区别是什么?
【问题讨论】:
-
@buddemat 那怎么样?这使您以元音开头或以元音结果结尾。
-
对不起,我应该写更多的解释。我的观点与下面的答案相同,只是添加了括号以指出第二个是 OR 并且否定变为 AND。本来打算多写点的,但在公交车上突然意识到自己需要下车了。不管怎样,既然你得到了一个好的答案,我会删除我的 cmets 以避免混淆......
-
你运行的是什么版本?我不知道
regexp_like()。 -
@RickJames 我在 HackerRank 上进行在线练习。所以可能与版本无关。 regexp_like() 在这里dev.mysql.com/doc/refman/8.0/en/…。我也是从这里的其他问题中学到的。
-
@Meruemu - 这是 8.0 的新功能。 (旧版本没有这个功能)。