如何在 SQL 的 Like 运算符中获取元音?

Aad*_*ore 0 mysql sql string where-clause sql-like

我正在解决来自 Hackerrank 的 SQL 问题。我必须进行查询,以便它为我提供所有以 a、e、i、o 或 u 开头的城市名称。我正在使用 Like 运算符,但仍然是错误的答案。

这是问题链接

这是我的解决方案-

SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE '[AEIOU]%'
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

GMB*_*GMB 5

LIKE不支持该部分。您需要一个正则表达式匹配:

SELECT DISTINCT CITY
FROM STATION
WHERE CITY REGEXP '^[AEIOU]'
Run Code Online (Sandbox Code Playgroud)

在正则表达式中,^代表字符串的开头,方括号定义了一个自定义字符类(意思是第一个字符必须属于那个列表)。

另一方面,如果您要使用LIKE,则需要多个条件,这会使代码更长(并且可能效率更低):

WHERE 
    CITY LIKE 'A%' 
    OR CITY LIKE 'E%' 
    OR CITY LIKE 'I%'
    OR CITY LIKE 'O%'
    OR CITY LIKE 'U%'
Run Code Online (Sandbox Code Playgroud)