你好,因为我是 mysql 新手,所以我有一个关于选择的问题。我正在 https://www.w3schools.com/ 上学习并在 https://www.hackerrank.com/ 上练习。
在 hackerrank.com 我有一个问题:
从 STATION 查询以元音(即 a、e、i、o 或 u)开头的 CITY 名称列表。您的结果不能包含重复项。
所以更有资格的人解释了为什么代码:
从车站选择不同的城市 哪里的城市像“[aeiouAEIOU]%”;
且不适用于 hackerrank.com。
但是这个:
选择不同的城市 从车站出发 WHERE CITY REGEXP '^[aeiouAEIOU]' 按城市订购;
做事。
您的问题值得回答,因为您的第一个查询:
SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE '[aeiouAEIOU]%';
事实上是有效的并且可以在其他数据库上运行,例如 SQL Server。但 MySQL 不支持
[aeiouAEIOU]
增强的 LIKE
语法。所以你需要使用 REGEXP
来代替。如果您只想在 MySQL 中使用 LIKE
,那么您可以使用:
SELECT DISTINCT CITY
FROM STATION
WHERE UPPER(CITY) LIKE 'A%' OR
UPPER(CITY) LIKE 'E%' OR
UPPER(CITY) LIKE 'I%' OR
UPPER(CITY) LIKE 'O%' OR
UPPER(CITY) LIKE 'U%';
您打错字了:应该是
CITY
,而不是CIRY
。
SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE '[aeiouAEIOU]%';
不知道为什么它在 www.w3schools.com 上有效。