Как использовать шаблоны RLIKE / REGEXP. * В MySQL - PullRequest
0 голосов
/ 04 марта 2019

Вопрос. Запросите список названий CITY от STATION, в которых гласные (т. Е. A, e, i, o и u) являются их первым и последним символами.Ваш результат не может содержать дубликаты.

Я нашел ответ, отредактированный @Mureinik, (спасибо! Это очень полезно!)

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

Я запутался в том, что вопрос задается ои их первый и последний символы aeiou, почему я не могу просто использовать

CITY RLIKE '^[aeiouAEIOU][aeiouAEIOU]$'

Однако, когда я вынимаю.и * показан неправильный ответ.

Почему мы должны использовать.и * в этом вопросе?Делает.и * всегда использовать вместе?

Есть еще один вопрос: запросить список названий CITY из STATION, которые не начинаются с гласных.Ваш результат не может содержать дубликаты.

SELECT DISTINCT CITY FROM STATION WHERE CITY NOT RLIKE '^[aeiouAEIOU].*$'; 

Зачем использовать [aeiouAEIOU] дважды в первом вопросе, использовать только один раз во втором?

1 Ответ

0 голосов
/ 04 марта 2019
CITY RLIKE '^[aeiouAEIOU][aeiouAEIOU]$'

Это будет соответствовать названиям городов только с двумя символами, обе гласные.

В регулярных выражениях набор символов в квадратных скобках, таких как [aeiouAEIOU], соответствует ровно одному символу.

Между двумя наборами, заключенными в квадратные скобки, ничего не должно быть, поэтому между строками не должно быть никаких символов.

...