我想打印所有不以元音开头的城市,也不能以元音结尾。 我知道有很多关于如何做的教程,当它不能以特定的字母开头时。但我无法找到它,表达了几封信。
这就是我的尝试:
select distinct city
from station
where city not like '%[aeiou]%';
所以,如果我说
where city not like '%a'
我将获得不以a
字母结尾的城市。
这样做的:
where city not like 'a%'
我将获得不以字母a
所以我尝试:where city not like '%[aeiou]%';
是将两者结合起来。我没有抛出错误,它确实给了我一个列表,但只是没有正确的结果。实际上这个名单太大了,以至于我不知道上面写的表达给了我什么。我尝试了其他几次尝试,但这可能是最合格的尝试。
如何获取所有不以元音开头或以元音结尾的城市列表?
答案 0 :(得分:3)
您只需使用SUBSTRING()
功能:
$cookie = Cookie::queue(Cookie::make('CookieName', 'CookieValue', 60));
我也在这里使用WHERE LOWER(SUBSTRING(city, 1, 1)) NOT IN ('a', 'e', 'i', 'o', 'u')
AND LOWER(SUBSTRING(city, -1, 1)) NOT IN ('a', 'e', 'i', 'o', 'u')
函数,因此您不必为大写字母重复相同的操作。
答案 1 :(得分:2)
在MySQL中,您将使用正则表达式。这种模式:
where city not like '%[aeiou]%';
将返回所有城市,因为据我所知,没有城市的名称中包含字符序列'[aeiou]'
。以上内容将在SQL Server或Sybase中发挥更有意义的作用,like
支持这些模式。
正则表达式如下:
where city regexp '^[^aeiouAEIOU].*[^aeiouAEIOU]$'
答案 2 :(得分:1)
我认为这是你正在尝试做的事情:
declare @Station table (city varchar(100))
insert into @station select 'Houston'
insert into @station select 'Astoria'
insert into @station select 'enigma'
select distinct
city
from
@Station
where
city not like '[aeiou]%[aeiou]'