I need to find the names of employees whose names begin with two consecutive vowels
My code:
SELECT first_name, last_name
FROM employees e
WHERE e.first_name LIKE '%[aeiouAEIOU]%[aeiouAEIOU]'
OR e.last_name LIKE '%a%a%'
AND e.last_name NOT LIKE '[aeiouAEIOU]%[aeiouAEIOU]'
ORDER BY last_name, first_name;
CodePudding user response:
You can do it using MySQL REGEXP operator:
SELECT e.first_name,
e.last_name
FROM employees e
WHERE e.first_name REGEXP '^[AEIOUaeiou]{2}'
AND e.last_name REGEXP '[AEIOUaeiou]{2}'
AND e.last_name REGEXP '[^AEIOUaeiou]$'
ORDER BY e.last_name,
e.first_name;
Pattern 1: names begin with two consecutive vowels ^[AEIOUaeiou]{2}
^: begin of string[AEIOUaeiou]{2}: sequence of two vowels
Pattern 2: surnames contain two consecutive vowels anywhere [AEIOUaeiou]{2}:
[AEIOUaeiou]{2}: sequence of two vowels
Pattern 3: surnames do not end with a vowel [^AEIOUaeiou]$:
[^AEIOUaeiou]: any character other than vowel$: end of string
Try it here.
