【问题标题】:How to get vowels in Like operator of SQL?如何在 SQL 的 Like 运算符中获取元音?
【发布时间】:2020-06-11 09:58:25
【问题描述】:

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

这就是问题Link

这是我的解决方案-

SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE '[AEIOU]%'

谁能解释一下?

【问题讨论】:

    标签: mysql sql string where-clause sql-like


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      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';
      

      这对我很有效(MS SQL)

      【讨论】:

        【解决方案3】:

        SELECT DISTINCT CITY FROM STATION WHERE LEFT(CITY, 1) IN ('A', 'E', 'I', 'O', 'U');

        这将返回以元音开头的城市名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-04
          • 1970-01-01
          • 2018-03-20
          相关资源
          最近更新 更多