MYSQL 基本选择

问题描述 投票:0回答:2

你好,因为我是 mysql 新手,所以我有一个关于选择的问题。我正在 https://www.w3schools.com/ 上学习并在 https://www.hackerrank.com/ 上练习。

在 hackerrank.com 我有一个问题:

从 STATION 查询以元音(即 a、e、i、o 或 u)开头的 CITY 名称列表。您的结果不能包含重复项。

所以更有资格的人解释了为什么代码:

从车站选择不同的城市 哪里的城市像“[aeiouAEIOU]%”;

适用于 www.w3schools.com

且不适用于 hackerrank.com。

但是这个:

选择不同的城市 从车站出发 WHERE CITY REGEXP '^[aeiouAEIOU]' 按城市订购;

做事。

mysql selection
2个回答
1
投票

您的问题值得回答,因为您的第一个查询:

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%';

0
投票

您打错字了:应该是

CITY
,而不是
CIRY

SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE '[aeiouAEIOU]%';

不知道为什么它在 www.w3schools.com 上有效。

© www.soinside.com 2019 - 2024. All rights reserved.