MYSQL REGEXP 不同时搜索两个条件 [重复]

MYSQL REGEXP not searching simultaneosly two conditions [duplicate]

提问人:NiMa03 提问时间:9/28/2023 更新时间:9/28/2023 访问量:35

问:

我试图找到所有不以元音开头和结尾的城市名称,但 REGEXP 没有正确搜索这两个条件,我做错了什么?

当我尝试这个时,它不起作用:

SELECT DISTINCT CITY FROM STATION
WHERE CITY REGEXP '^[AEIOU].*[AEIOU]$'

因为它带来了像“阿灵顿”这样的城市名称

SQL MySQL 正则表达式

评论

0赞 caramba 9/28/2023
你提到城市名称应该以 .... 开头但是您的查询中缺少。NOTNOTwhere
0赞 Jonas Metzler 9/28/2023
为什么在这里使用正则表达式?这将执行:SELECT DISTINCT city FROM station WHERE LOWER(LEFT(city,1)) NOT IN ('a','e','i','o','u') AND LOWER(RIGHT(city,1)) NOT IN ('a','e','i','o','u')
1赞 Jonas Metzler 9/28/2023
顺便说一句,您的问题完全重复,即使表名和列名相同,请参阅这个相同的问题
1赞 caramba 9/28/2023
@JonasMetzler,这个问题指向一个更古老的相同问题:用于检查名称是否以元音开头和结尾的 SQL 查询

答:

0赞 caramba 9/28/2023 #1

尝试这样:

SELECT DISTINCT CITY
FROM STATION
WHERE CITY NOT REGEXP '^[AEIOUaeiou]' 
AND CITY NOT REGEXP '[AEIOUaeiou]$';

SELECT DISTINCT CITY
FROM STATION
WHERE NOT (CITY REGEXP '^[AEIOUaeiou]' OR CITY REGEXP '[AEIOUaeiou]$');

你可以在这里玩它:http://sqlfiddle.com/#!9/02eaa7/2