MySQL通配符查询

时间:2016-02-09 22:36:49

标签: mysql sql

我对SQL比较陌生,在遇到一些练习问题时遇到了问题/问题。

https://www.hackerrank.com/challenges/weather-observation-station-8

这是我用于MySQL的查询:

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

我很困惑为什么这不起作用。这是我对查询的想法:

SELECT DISTINCT CITY 

^确保每个城市都不会重复

FROM STATION
来自STATION表的

^

WHERE CITY LIKE '[aeiou]%[aeiou]'

^选择的城市名称可以使第一个字母以[aeiou]开头,中间有任何内容,并以[aeiou]结尾。

感谢任何帮助或建议,谢谢!

2 个答案:

答案 0 :(得分:1)

如果您使用的是正则表达式,则可以使用regexpRLIKE代替LIKE。您需要做的另一件事是将^表示第一个字符,$表示最后一个字符,.*表示通配符。请参阅thisthis

SELECT DISTINCT CITY
FROM STATION
WHERE CITY RLIKE '^[aeiou].*[aeiou]$'

答案 1 :(得分:0)

like运算符只有2个通配符:%和_,它不处理括号语法。您需要使用正则表达式,并且可以使用rlike运算符。但在正则表达式中,您需要使用.代替_.*而不是%