mysql - 从 STATION 查询不以元音开头且不以元音结尾的 CITY 名称列表

标签 mysql sql regex

这是来自 HackerRank 的挑战问题.

我的第一个查询工作正常:

select distinct city
from station
where city not regexp '^[aeiou]'
and   city not regexp '[aeiou]$'

但是我的第二个查询给出了错误的答案

select distinct city
from station
where city not regexp '^[aeiouAEIOU].*[aeiouAEIOU]$'

正在编译,但给出了错误的结果

最佳答案

https://dev.mysql.com/doc/refman/8.0/en/regexp.html

“NOT REGEXP”是 REGEXP 的否定,

'REGEXP' -> 检查 'REGEXP' 如果满足则返回 1,否则返回 0

    select 'Chelsea' REGEXP '^[aeiou].*[aeiou]$' ;

        0

“NOT REGEXP” -> 检查“REGEXP”,然后返回结果的相反值。

    select 'Chelsea' not REGEXP '^[aeiou].*[aeiou]$' ;

        1

在本例中,“Chelsea”不以元音开头,因此 REGEXP 为 0,not REGEXP 为 1。

因此,您正在计算城市,甚至名称以元音开头或结尾。

关于mysql - 从 STATION 查询不以元音开头且不以元音结尾的 CITY 名称列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56575274/

相关文章:

sql - 在 SQL Server 2008 中插入/更新大量数据的最佳实践

regex - sed 模式似乎不匹配/替换

sql - 让 MySQL 从 LIKE 条件开始时忽略 "The"?

java - JPA native 查询 "select into outfile"

跨多个相似 View 的 MySQL 查询

python - 如何修复 pandas to_sql 追加不追加 2000 项中的一项?

asp.net - 想要构建一个在线网络邮件脚本

python - 如何查找 bs4 的所有字符串?

正则表达式,必须包含数字、1-5 个字符以及字母和数字

java - 在 MySQL 中,如何仅在行不存在时插入并仅在现有版本较少时更新