我在解决来自hackerrank的sql问题。我必须做一个查询,这样它会给我所有城市的名字,以a,e,i,o或u开头。我使用了like运算符,但仍然是错误答案。这是问题链接这是我的解决办法-
SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE '[AEIOU]%'
有人能解释一下吗?
xzv2uavs1#
LIKE 不支持该部分。您需要与此匹配的正则表达式:
LIKE
SELECT DISTINCT CITY FROM STATION WHERE CITY REGEXP '^[AEIOU]'
在正则表达式中, ^ 表示字符串的开头,方括号定义了一个自定义字符类(意味着第一个字符必须属于该列表)。另一方面,如果你用 LIKE ,则需要多个条件,这将使代码更长(可能效率更低):
^
WHERE CITY LIKE 'A%' OR CITY LIKE 'E%' OR CITY LIKE 'I%' OR CITY LIKE 'O%' OR CITY LIKE 'U%'
ulmd4ohb2#
select distinct city from station where Left(city,1)='A' or Left(city,1)='E' or Left(city,1)='I' or Left(city,1)='O' or Left(city,1)='U';
这对我很有效(sql女士)
2条答案
按热度按时间xzv2uavs1#
LIKE
不支持该部分。您需要与此匹配的正则表达式:在正则表达式中,
^
表示字符串的开头,方括号定义了一个自定义字符类(意味着第一个字符必须属于该列表)。另一方面,如果你用
LIKE
,则需要多个条件,这将使代码更长(可能效率更低):ulmd4ohb2#
这对我很有效(sql女士)